我有基本授权,它基于Spring启动安全性:
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
//...declared fields
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.passwordEncoder(passwordEncoder())
.withUser("user")
.password("userpass")
.roles("USER")
.and()
.withUser("admin")
.password("adminpass")
.roles("ADMIN", "USER");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login").permitAll()
.antMatchers("/logout").permitAll()
.anyRequest().authenticated()
.and()
.httpBasic()
.and().logout().permitAll()
.and()
.formLogin()
.loginProcessingUrl("/login")
.permitAll()
.and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/login");
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
当我尝试在授权后添加新帖子时,我会收到这条消息:
{
"timestamp": "2018-07-04T12:19:25.638+0000",
"status": 403,
"error": "Forbidden",
"message": "Forbidden",
"path": "/post/create"
}
在我的控制器中:
@RestController
public class PostController {
@Autowired
private PostDAO postDAO;
@GetMapping("/posts")
public Page<Post> getAllPosts(Pageable pageable) {
return postDAO.findAll(pageable);
}
@PostMapping("/post/create")
public Post createPost(@Valid @RequestBody Post post) {
return postDAO.save(post);
}
//other end-points........
}
然而,读操作从我的控制器工作得很好,但积垢操作我没有访问权。
我的依赖性如下:
dependencies {
compile ('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.hibernate:hibernate-core')
compile('org.springframework.boot:spring-boot-starter-security')
runtime('mysql:mysql-connector-java')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.security:spring-security-test')
testCompile('junit:junit')
}
知道吗?提前谢谢!
通常你的html表单标签应该包括一个生成csrf令牌的隐藏字段,但是,thymeleaf会自动为你做这件事,你应该检查你的html标签,看看是否没有一个"th:"被包括在内,如果没有,在表单标签中的"action"之前包括一个"th:",做到这一点,thymeleaf无形地生成csrf令牌。
这是因为启用了CSRF
。CSRF
保护在Java配置中默认启用。我们仍然可以使用下面给出的配置禁用CSRF
。
http .csrf().disable() .authorizeRequests() .anyRequest().permitAll();
从Spring Security 4. x开始-CSRF
保护在XML配置中也默认启用;当然,如果需要,我们仍然可以禁用它:
<http>
...
<csrf disabled="true"/>
</http>
注意:CSRF是一种攻击,它迫使最终用户在当前已通过身份验证的web应用程序中执行不需要的操作。
Spring我是新来的。我试图在我的数据库中添加一个新目标。在我添加spring security之前,它是有效的,但现在如果我单击添加新目标,我有一个问题: 出现意外错误(类型=禁止,状态=403)。被禁止的 我的goat-add.html: WebSecurity配置类: 我的控制器: 我读到这个问题可以是如果不使用csrf,但我不明白我怎么能解决它。 所有代码:https://github.
问题内容: 我制作了供个人使用的python脚本,但不适用于Wikipedia … 这项工作: 这不起作用: 这是错误: 问题答案: 在当前代码内: Python 2.X 的Python 3.X 带有Selenium的Python 3.X(执行Javascript函数) 修改后的版本起作用的原因是因为Wikipedia检查User-Agent是“流行的浏览器”
有人能帮我找出我的SSLHandshake有什么问题吗? 我有一个Java客户端应用程序(使用Spring WS-security)试图将数据发送到服务器(不在我的控制范围内),我设置了以下内容 具有来自服务器的证书的客户端信任库 Java密钥库与我的私人密钥输入证书 在我的调试SSL握手日志(某些部分缩写)下面,我似乎找不到任何错误。。这是服务器端需要调查的事情吗?(我不确定,他们也不确定,这就
问题内容: 我正在尝试使用python自动下载历史股票数据。我尝试打开的URL响应为CSV文件,但无法使用urllib2打开。我曾尝试按照前面几个问题中的说明更改用户代理,甚至还尝试接受响应cookie,但是没有运气。你能帮忙吗? 注意:相同的方法适用于yahoo Finance。 码: 错误 http_error_default中的文件“ C:\ Python27 \ lib \ urllib2
嗨,我刚开始学习Spring、AJAX和JSON。当我试图发回一条信息时,我遇到了一个错误。 信息。jsp 控制器。JAVA 我尝试了很多不同的方法来解决这个问题,但都没有效果,我无法发布消息。 有什么帮助或原因让我一直犯这个错误吗? jquery。js:4帖子http://localhost:8080/spring/sendmessage403(禁止)发送@jquery。js:4 ajax@jq
我正在做一个spring boot项目,其中包括thymeleaf,spring security。当我执行以下操作时效果很好:显示产品列表、显示产品详细信息、添加新产品、更新现有产品。 但当我执行-删除产品时,会出现以下错误: 白标错误页面 此应用程序没有/error的显式映射,因此您将其视为一种回退。 18 16:59:16BDT 2019 出现意外错误(类型=禁止,状态=403)。 被禁止的