2019独角兽企业重金招聘Python工程师标准>>>

web.xml配置如:

<filter><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.xml的配置:

<!--设置匹配管理员用户url,登录页面和所拥的权限,以及引用adminAuthManager验证管理 --><http auto-config="true" pattern="/admin/**" use-expressions="true" authentication-manager-ref="adminAuthManager"><form-login login-processing-url="/admin/j_spring_security_check" login-page="/admin_login.html" authentication-failure-url="/common/login/usernameCheckFailed"  default-target-url="/admin/login/adminCheckSuccess"always-use-default-target="true"/><!-- <logout logout-url="/module/j_spring_security_logout" logout-success-url="/" /> --><!-- 自定义退出过滤器 --><custom-filter ref="userLogoutFilter" position="LOGOUT_FILTER" /><intercept-url pattern="/admin/department/**" access="hasRole('ROLE_ADMIN_DEPARTMENT')" /><intercept-url pattern="/admin/processdefinition/**" access="hasRole('ROLE_ADMIN_PROCESSDEFINITION')" /><intercept-url pattern="/admin/roleManage/**" access="hasRole('ROLE_ADMIN_ROLEMANAGE')" /><intercept-url pattern="/admin/moduleManage/**" access="hasRole('ROLE_ADMIN_MODULEMANAGE')" /><intercept-url pattern="/admin/parentModuleManage/**" access="hasRole('ROLE_ADMIN_PARENTMODULEMANAGE')" /><intercept-url pattern="/admin/manageUserAccount/**" access="hasRole('ROLE_ADMIN_MANAGEUSERACCOUNT')" /><intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')" /></http><!-- 不需要进行认证的资源,3.0之后才改为这样配置 --><!-- <http security="none" pattern="/**/index" /> --><http security="none" pattern="/**/*login.html" /><http security="none" pattern="/**/*.jpg" /><http security="none" pattern="/**/*.png" /><http security="none" pattern="/**/*.gif" /><http security="none" pattern="/**/*.css" /><http security="none" pattern="/**/*.js" /><http security="none" pattern="/*.ico" /><http security="none" pattern="/*.jpg" /><!--后台管理用户验证管理bean --><authentication-manager id="adminAuthManager"><authentication-provider user-service-ref="adminDetailService"><password-encoder hash="md5"></password-encoder></authentication-provider></authentication-manager><!-- 普通用户退出的过滤器配置 --><beans:bean id="userLogoutFilter" class="com.bluedon.cb.util.filter.UserLogoutFilter"><!-- 处理退出的虚拟url --><beans:property name="filterProcessesUrl" value="/module/logout" /><!-- 退出处理成功后的默认显示url --><beans:constructor-arg index="0" value="/" /><beans:constructor-arg index="1"><!-- 退出成功后的handler列表 --><beans:array><!-- 加入了开发人员自定义的退出成功处理 --><beans:bean id="userLogoutSuccessHandler" class="com.bluedon.cb.util.filter.UserLogoutHandler" /></beans:array></beans:constructor-arg></beans:bean>

说明:

lowercase-comparisons:表示URL比较前先转为小写。 
  path-type:表示使用Apache Ant的匹配模式。 
  access-denied-page:访问拒绝时转向的页面。 
  access-decision-manager-ref:指定了自定义的访问策略管理器。当系统角色名的前缀不是默认的ROLE_时,需要自定义访问策略管理器。 
  login-page:指定登录页面。 
  login-processing-url:指定了客户在登录页面中按下 Sign In 按钮时要访问的 URL。与登录页面form的action一致。其默认值为:/j_spring_security_check。 
  authentication-failure-url:指定了身份验证失败时跳转到的页面。 
  default-target-url:指定了成功进行身份验证和授权后默认呈现给用户的页面。 
  always-use-default-target:指定了是否在身份验证通过后总是跳转到default-target-url属性指定的URL。 
  logout-url:指定了用于响应退出系统请求的URL。其默认值为:/j_spring_security_logout。 
  logout-success-url:退出系统后转向的URL。 
  invalidate-session:指定在退出系统时是否要销毁Session。 
  max-sessions:允许用户帐号登录的次数。范例限制用户只能登录一次。 
  exception-if-maximum-exceeded: 默认为false,此值表示:用户第二次登录时,前一次的登录信息都被清空。 
  当exception-if-maximum-exceeded="true"时系统会拒绝第二次登录。

下面是security,用户退出的session处理(可以不写):

package com.bluedon.cb.util.filter;import org.springframework.security.web.authentication.logout.LogoutFilter;
import org.springframework.security.web.authentication.logout.LogoutHandler;
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;/*** * * Description:退出过滤器* * Time:2016年3月2日下午5:38:04* @version 1.0* @since 1.0*/
public class UserLogoutFilter extends LogoutFilter{public UserLogoutFilter(String logoutSuccessUrl, LogoutHandler[] handlers) {super(logoutSuccessUrl, handlers);}public UserLogoutFilter(LogoutSuccessHandler logoutSuccessHandler,LogoutHandler[] handlers) {super(logoutSuccessHandler, handlers);}}
package com.bluedon.cb.util.filter;import java.util.Date;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.logout.LogoutHandler;import com.bluedon.cb.common.entity.LoginLog;
import com.bluedon.cb.common.service.CommonLogService;
import com.bluedon.cb.util.SpringContextUtil;
import com.bluedon.cb.util.constants.Constants;/*** * * Description:退出成功处理器* * Time:2016年3月2日下午5:38:29* @version 1.0* @since 1.0*/
public class UserLogoutHandler implements LogoutHandler {private Logger log = LoggerFactory.getLogger(UserLogoutHandler.class);public UserLogoutHandler() {}@Overridepublic void logout(HttpServletRequest req, HttpServletResponse arg1, Authentication arg2) {// TODO Auto-generated method stub//modify by qinguidong 添加try catch 为了防止session超时,而取到的loginLog为空,报错。不能返回到登录页面try {HttpSession session = req.getSession();LoginLog loginLog =  (LoginLog)session.getAttribute(Constants.LOGIN_LOG);CommonLogService commonLogService = (CommonLogService)SpringContextUtil.getBean("commonLogServiceImpl");loginLog.setLoloLogoutDate(new Date());//退出时间//清除sessionif (session != null) {  session.invalidate();  }  SecurityContextHolder.clearContext();  //入库int count = commonLogService.updateLoginLog(loginLog);if(count != Constants.SUCCESS){log.error("记录登录日志失败了:"+loginLog.getLoloUsroName());}} catch (BeansException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

转载于:https://my.oschina.net/u/920528/blog/692824

spring_security权限应用相关推荐

  1. Spring Security到底是什么

    Spring Security你懂了吗 前置知识 掌握Spring框架 掌握SpringBoot框架 掌握JavaWeb框架 下面的内容主要是用来介绍用户认证和用户的授权 两个安全认证框架对比 Spr ...

  2. pythonDjango后端笔记

    文章目录 软件开发架构 纯手撸web框架 借助于wsgiref模块 动静态网页 模块语法之Jinja2模块 自定义简易版本web框架请求中各个模块的作用 python3大主流web框架 注意事项 Dj ...

  3. 权限管理-整合SpringSecurity

    在spring_security引入相关依赖 <dependencies> <!-- Spring Security依赖 --><dependency><gr ...

  4. 用户登陆进去后,没有权限操作

    与用户表关联的角色表,其中的角色名(role_name)要改为USER和ADMIN 因为spring_security有权限操作的是 ROLE_USER和ROLE_ADMIN 转载于:https:// ...

  5. Springboot + Spring Security 实现前后端分离登录认证及权限控制

    Spring Security简介 Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展 ...

  6. RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置

    1. 服务器管理 我们使用 "节点" 来指代 RabbitMQ 实例,当我们谈到 RabbitMQ 节点时指的是 RabbitMQ 应用程序和其所在的 Erlang 节点. 1.1 ...

  7. Linux shell 学习笔记(5)— 文件权限(添加、修改、删除用户及创建、修改群组)

    1. Linux的安全性 Linux 安全系统的核心是用户账户.每个能进入 Linux 系统的用户都会被分配唯一的用户账户.用户对系统中各种对象的访问权限取决于他们登录系统时用的账户. 用户权限是通过 ...

  8. Vue 自定义权限指令

    前述 虽然VUE 定义了一些常用的指令,例如v-on.v-bind等,但是在我们实际开发的时候,还是会自己定义一些指令用于适应我们自己的业务. 实现 这里由于我的项目做了动态权限,页面的按钮也需要根据 ...

  9. npm install 提示权限不足 Error: EPERM: operation not permitted, unlink XXX

    问题描述 使用npm install出现 npm install 提示权限不足 Error: EPERM: operation not permitted, unlink XXX提示 原因 这里原因有 ...

最新文章

  1. Nature子刊:Knight组发布快速UniFrac算法
  2. 关于自动驾驶汽车法律政策的十点思考
  3. T100 section已经修改过
  4. 她说要介绍10000个开源项目?来!一起监督他!
  5. Jquery高亮显示文本中重要的关键字
  6. uva 10453 - Make Palindrome(dp)
  7. 【SSH】——Hibernate三种状态之间的转化
  8. java 冒泡排序_Java冒泡排序详解
  9. java excel jxls_java通过jxls框架实现导入导出excel文件实例
  10. MaxCompute管家详解--管家助力,轻松玩转MaxCompute
  11. aix oracle监听配置_Oracle数据库03用户权限与数据库的连接
  12. Swift 变量、常量、数据类型
  13. 非因解读 | Multiplex immunofluorescnece-多重免疫荧光结合单细胞蛋白组技术探索肿瘤微环境
  14. 配置Skype for business 2015混合部署
  15. 【券后价12.90元】【包邮】植护婴儿湿巾纸宝宝湿纸巾儿童手口专用80抽家用大包装特价实惠装...
  16. STM32CubeMX新建工程+基本IO配置过程
  17. 计算机考证上传照片说明
  18. 二十道面试题成都至少16k
  19. 新闻推荐系统:基于内容的推荐算法——TFIDF、衰减机制(github java代码)
  20. nodejs+vue+elementui高校体育馆场地预订系统

热门文章

  1. Java虚拟机字节码指令概述
  2. windbg查看设备栈设备树学习总结
  3. ntdll.dll学习总结
  4. Struts2中的action类
  5. Java 三大框架集成项目结构
  6. CSS弹出二级多列菜单和DIV布局实例 - 仿IBM官网首页
  7. 聊聊、Java SPI
  8. Tesseract 3.02 OCR文字识别调查记录
  9. ExpressionFuncT,TResult和FuncT,TResult
  10. Struts2 拦截器 及如何获得 servlet 请求对象 以及Struts 基本配置 Session 超时设置...