~随笔A015~spring security对用户权限控制

  在实际的开发项目中,我们都会用到角色权限的控制,每个人可能因为不同的角色而在登录时进入不同的页面,这样角色与代码紧密耦合在一起,形成硬编码,在后续维护中,我们每新增一个角色就需对代码多加个if-else的判断,这里,我们看看spring-security如何实现用户权限控制?

  一、什么是spring security?

  spring security基于spring框架为j2ee的企业应用软件提供全面的安全服务。(即仅应用于java开发应用中)

  二、spring security

  1.spring 的AOP概述

  

  这2个切面就像2把锁,系统进入各个环节时根据2把锁同时完成,才能进入业务功能。

  2.spring security作用

  

  3.spring security源码获取

  

  4.spring security项目配置

  (1)web.xml配置

  

  (2)spring security自身配置文件

  所有的框架都有自己的配置文件,spring security也不例外,它的配置文件默认与spring相同(applicationContext.xml)

  在applicationContext.xml中头文件引入2个scheme文件 spring、spring-security

  

  a).<http auto-config="true"></http>

  <http>标签代表访问的全为http协议

  auto-config="true"解析:在spring security中共有7个过滤器,如果配置不好会有异常,而在2.0版本中加上此属性可以自动配置过滤器链

  b).<intercept-url pattern="/index.jsp" access="ROLE_user,ROLE_admin">

  <intercept-url>解析:拦截的URL,即保护路径,可以是页面也可以是action  

  access解析:表示当前有哪些角色可以访问当前路径,默认ROLE前缀

  c).配置用户

  

  d).自定义登录页配置

  <form-login login-page="/login.jsp"  authentication-failure-url="/login.jsp" default-target-url="/ace.jsp" always-user-default-target="true"/>

  authentication-failure-url:认证失败返回页面

  default-targeturl:登录成功页面

  always-user-default-target:不管从哪个页面进来都进入均返回成功默认页面ace.jsp(强制默认成功页);如果不配置,从保护资源进入成功后依据cookie记忆返回保护资源index.jsp(人性化)。

  e).login.jsp页面

  

  

  

  f).无权限配置页面(如果用户没有权限访问,将返回denied.jsp页面)

  

原文地址:https://www.cnblogs.com/gaojl/p/8521199.html