spring的权限控制模块

1 权限模块大概表的设计

   权限模块的对象有 角色  用户  权限  用户和角色对对多关系  权限和角色多对多的关系

2 spring_security

1 配置拦截器,用于角色模块的拦截

  web.xml配置

 <filter-name>springSecurityFilterChain</filter-name>
  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
  <filter-name>springSecurityFilterChain</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

委派过滤器,整合spring security 过滤器的名称是springSecurityFilterChain

 

2 配置模块和所需要的权限

   1 配置不需要权限认证的的文件或者文件夹

     <security:http security="none" pattern="/js/**"></security:http>

   2 权限认证配置

<security:http auto-config="true" use-expressions="true">
//如果有页面嵌套需要配置,spring security默认禁止页面嵌套
    <security:headers>
        <security:frame-options policy="SAMEORIGIN"></security:frame-options>
    </security:headers>
//配置需要权限认证的路径,和需要的权限
    <security:intercept-url pattern="/pages/**" access="isAuthenticated()"></security:intercept-url>

    <security:form-login login-page="/login.html"        //配置登录页面
                           username-parameter="username"  //配置用户名
                           password-parameter="password"  //配置密码
                           login-processing-url="/login.do" //配置登录的请求路径
                           default-target-url="/pages/main.html" //配置登录后的页面
                           always-use-default-target="true"    
                           authentication-failure-forward-url="/login.html"> //配置登录失败跳转的页面
    </security:form-login>
   //如果有配置登录页面需要配置该选项
    <security:csrf disabled="true"></security:csrf>
   //配置退出请求路径
    <security:logout logout-success-url="/login.html" logout-url="/logout.do" invalidate-session="true"></security:logout>
</security:http>

3 配置service ,spring会调用service查询用户

<security:authentication-manager>
    //配置service,spring security会调用该service
    //定义的service需要实现UserDetailsService类
    //定义service需要返回org.springframework.security.core.userdetails.User
    //list.add(new SimpleGrantedAuthority(permission.getKeyword()));
    //UserDetails userDetails = new      org.springframework.security.core.userdetails.User(username,user.getPassword(),list);
    <security:authentication-provider user-service-ref="springSecurityUserService">
       //配置加密方式
      //spring secrity 默认加密方式
      //org.springframework.security.crypto.bcrypt.BCryptPasswordEncode
        <security:password-encoder ref="passwordEncoder"></security:password-encoder>
    </security:authentication-provider>
</security:authentication-manager>

5 controler的注解模块

@PreAuthorize("hasAuthority('CHECKITEM_EDIT')")//权限校验

其中CHECKITEM_EDIT是自己权限表中定义的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值