【发布时间】:2017-11-04 03:35:28
【问题描述】:
我正在使用 Spring Boot 并且对 Spring Security 非常陌生,但我希望我的 Web 应用程序具有基本的安全性。我所做的是在我的 pom.xml 中添加所需的依赖项并将这个 java 类添加到我的项目中:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/**","/event/**","/ticket/**")
.hasRole("USER")
.and()
.formLogin();
}
}
运行我的 Web 应用程序后,我进入了登录页面,我在其中输入了用户/密码,然后它进入了我的 Web 应用程序。但是,这些命令不起作用。我正在按下一些应该向我的 MySql 数据库发送信号的按钮,但没有任何反应。就像前端不再连接到后端一样。我将 AngularJS 用于前端和在页面之间导航的视图控制器。应用程序的其余部分是基于 REST 的。知道为什么会发生这种情况吗?
稍后编辑:现在我明白了,我遇到的问题是,在进行身份验证后,我的端点上出现了 403 状态代码。知道如何解决吗?
后来的 Editv2:看起来我的 POST 请求没有获得授权,我的 GET 工作正常……这是我的一些 POST 端点: /event/buy_ticket/{id} , /ticket// cancel_ticket/{id}
angular.min.js:101 POST http://localhost:8080/event/buy_ticket/2 403 ()
我什至试图明确地说它允许它,但我仍然得到 403...
http.authorizeRequests()
.antMatchers("/**","/event/**","/ticket/**","/event/buy_ticket/2")
.permitAll()
.and()
.formLogin();
稍后稍后编辑:
禁用 csrf 有效
【问题讨论】:
-
不,身份验证有效。问题来了,当我在我的页面上做事时没有任何反应
-
您是否从您的 api 端点收到 403 响应?
-
是的,我得到 403
标签: java mysql angularjs spring spring-security