springboot 加security2.7.5之前能正常访问,加上之后就报 No mapping for GET /hello,WebSecurityConfigurerAdapter已经过时,换个方式
时间: 2024-05-12 10:14:46 浏览: 101
SpringBoot(2.1.6) + dubbo(apache 2.7.5) + zookeeper 集成并测试
如果在加入 Spring Security 2.7.5 之前能正常访问,但加入后出现问题,那么很有可能是由于配置不正确导致的。你可以根据下面的步骤进行排查:
1. 确认是否添加了正确的依赖。Spring Security 需要依赖于 Spring Web、Spring MVC 或 Spring Boot 等相关组件,因此需要在 pom.xml 文件中添加正确的依赖。
2. 确认是否进行了正确的配置。Spring Security 配置需要通过继承 WebSecurityConfigurerAdapter 并实现 configure 方法来完成,你可以检查一下 configure 方法中是否正确配置了 HTTP 安全规则,如允许访问某些路径、需要认证的路径、允许访问的角色等。
3. 由于 WebSecurityConfigurerAdapter 已经过时,建议使用更加灵活的 HttpSecurity 进行配置。你可以创建一个类并实现 WebSecurityConfigurer 接口,然后重写 configure 方法,使用 HttpSecurity 对象进行配置。
例如,下面是一个使用 HttpSecurity 进行配置的示例:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig implements WebSecurityConfigurer {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/hello").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().permitAll()
.and()
.logout().permitAll();
}
}
```
其中,authorizeRequests 方法用于配置访问规则,antMatchers 方法用于指定允许访问的路径,anyRequest 方法用于指定需要认证的路径,formLogin 方法用于配置表单登录,logout 方法用于配置注销。
阅读全文