spring security如何设定匿名访问

anonymous()

允许配置匿名用户的表示方法。 当与WebSecurityConfigurerAdapter结合使用时,这将自动应用。 默认情况下,匿名用户将使用org.springframework.security.authentication.AnonymousAuthenticationToken表示,并包含角色 “ROLE_ANONYMOUS”

可以创建一个匿名用户的身份

当过滤器发现没有真实用户的时候,就给当前用户一个匿名身份

同时数据里设定一个匿名用户角色

让匿名的用户有权限访问“匿名访问的资源”

当然还有一种设计方式

就是自定义注解,在配置类里解析注解,然后放过。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Spring Security中,可以使用`WebSecurityConfigurerAdapter`配置类来配置匿名访问和登录认证。 首先,需要在`configure(HttpSecurity http)`方法中配置匿名访问,例如: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/public/**").permitAll() // 允许匿名访问的路径 .anyRequest().authenticated() // 其他路径需要认证后访问 .and() .formLogin() // 配置表单登录 .and() .logout(); // 配置退出登录 } } ``` 在上面的例子中,我们允许匿名访问`/public/**`路径,其他路径需要认证后访问。 接着,需要配置登录认证。可以使用`UserDetailsService`来定义系统中的用户和角色,例如: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private UserDetailsService userDetailsService; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/public/**").permitAll() .anyRequest().authenticated() .and() .formLogin() .and() .logout(); } } ``` 注意,`UserDetailsService`需要在配置类中注入,并在`configure(AuthenticationManagerBuilder auth)`方法中使用。 最后,需要在系统中定义用户和角色,可以使用`InMemoryUserDetailsManager`来实现: ```java @Configuration public class SecurityConfig { @Bean public UserDetailsService userDetailsService() { InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); manager.createUser(User.withUsername("user").password("password").roles("USER").build()); manager.createUser(User.withUsername("admin").password("password").roles("USER", "ADMIN").build()); return manager; } } ``` 在上面的例子中,我们定义了两个用户,一个是`USER`角色,另一个是`USER`和`ADMIN`角色。 通过以上配置,我们就可以实现匿名访问和登录认证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值