我为我的应用程序使用spring security。到目前为止我用过
org.springframework.boot spring-boot-starter-web 1.2.5 RELEASE
现在我想用
org.springframework.boot spring-boot-starter-web 1.3.2 RELEASE
My SecurityConfiguration.java看起来像这样:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userService;
@Autowired
public void configureAuth(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService).passwordEncoder(new BCryptPasswordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated().and().formLogin().loginPage("/login.html")
.failureUrl("/login.html?error").defaultSuccessUrl("/index", true).permitAll().and().logout()
.logoutSuccessUrl("/logout.html").permitAll().and().csrf().disable();
}
}
我的其他服务之一如下:
@RequestMapping("/test")
@PreAuthorize("hasRole('ADMIN')")
public List<Tests> getTests() {
return ...
}
旧版本有效。对于较新的版本,如果我尝试拨打其他服务,我将被禁止403。有谁知道怎么让这个再次起作用?
答案 0 :(得分:0)
从1.2.5升级到1.3.2时,还会将spring-security从3.X更新为4.X。
您可以覆盖自己项目中的spring security依赖项,以保留spring-security的早期版本。 (我不认为这是推荐的,至少你会在启动时看到警告)
或者,您可以仔细阅读下面的文档,并在从spring-security 3.X迁移到4.X时执行所有必要的配置更新