spring security权限问题

  1. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
    引入jar

  2. extends WebSecurityConfigurerAdapter 用来配置登陆和权限

  3. configure(HttpSecurity http) 覆盖这个方法

  4. //配置授权相关的
    .authorizeRequests ()
    //任何请求
    .anyRequest()
    //要求授权后可以访问
    .authenticated();

  5. spring security 的实现原理,是一系列的filter。 UsernamePasswordAuthenticationFilter 用于表单的用户名和密码的验证,用于处理exception的ExceptionTranslationFilter 。最后的过滤器这个之后就是直接访问我们的其你去了FilterSecurityInterceptor 。

  6. 因为我们要提交用户名密码,所以spring有个专门处理这个的接口。UserDetailsService 。

  7. 如何自定义用户获取信息的,如何校验,密码的加密解密 UserDetailService 主要是根据String 的用户名,获取相对应的密码。无论是从哪里查

  8. UserDetail 可以处理用户的锁定,用户的失效,密码过期问题。

  9. 自己设置登陆页面

             http
           //.httpBasic()
           .formLogin()
                          //自己的登陆页面。如果是springboot项目,这个地址是一个mapping的地址。在mapping中设置跳转的html也就是mvc的模式。
           .loginPage("/homeLogin")
           // 这个是登陆页面提交的mapping地址。其实也就是UserNamePassword 那个filter 默认处理的地址是 /login,设置后,就是新的这个地址,filter会自动处理。拿到username和password等等,以及之后的流程。
           .loginProcessingUrl("/userLogin")
            .and()
           //配置授权先关的
           .authorizeRequests ()
           //因为下面几行的访问限制是所有的路径,所以这块是放行登陆页面,如果不放行,会一直请求登陆页面,但是又没有权限,也就是循环请求了,浏览器会报重定向次数过多。
           .antMatchers("/homeLogin").permitAll()
           //任何请求
           .anyRequest()
           //要求授权后可以访问
           .authenticated()
           .and()
           //这个如果不配置。在新版的security中,登陆页面输入用户名和密码提交会一直刷新登陆页面。所以这是必须配置的,让这个安全配置失效
           .csrf().disable();
    
  10. 在上面这些配置下,完成自定义登陆页面。可以在输入正确的用户密码的情况下,请求mapping。如果错误,暂时没有定义错误页面,因为别的页面没有权限,还是会跳转到登陆页面

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值