权限管理

配置不过滤的资源

  • 方法1

    <http pattern="/login.jsp" security="none"></http>

  • 方法2

<sec:http auto-config="true">
<intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />配置表示允许匿名用户访问
</sec:http>

配置需要赋予权限才能访问的资源

<http auto-config="true">
<!-- 表示访问app.jsp时,需要ROLE_ADMIN权限 -->
<intercept-url pattern="/adminpage.jsp" access="hasRole('ROLE_ADMIN')"></intercept-url>
<!--表示访问任何资源都需要ROLE_USER权限。 -->
<intercept-url pattern="/**" access="hasRole('ROLE_USER')"></intercept-url>
</http>

自定义登陆登出页面

applicationContext-security.xml配置

<http auto-config="false" use-expressions="true">
<!-- 具有ROLE_ADMIN权限的用户才能访问全部路径 -->
<intercept-url pattern="/adminpage.jsp" access="hasRole('ROLE_ADMIN')"/>
<!-- 具有ROLE_USER权限的用户才能访问全部路径 -->
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login
login-page="/login.jsp"
login-processing-url="/j_spring_security_check"
authentication-failure-url="/login.jsp"
default-target-url="/index.jsp" />
<csrf disabled="true" />
<logout invalidate-session="true"
logout-success-url="/login.jsp"
logout-url="/j_spring_security_logout" />
</http>
  • auto-config="true"时使用默认的配置,会配置十个默认过滤器:SecurityContextPersistenceFilter、LogoutFilter、

    UsernamePasswordAuthenticationFilter、BasicAuthenticationFilter、RequestCacheAwareFilter、SecurityContextHolderAwareRequestFilter、

    AnonymousAuthenticationFilter、SessionManagementFilter、ExceptionTranslationFilter、FilterSecurityInterceptor
  1. login-page="/login.jsp" 表示使用login.jsp代替默认登陆界面。
  2. login-processing-url="/j_spring_security_check" 使用spring-security 4.x版本必须添加该属性,表示登录表单提交路径。
  3. authentication-failure-url="/login.jsp" 表示授权失败之后跳转到login.jsp界面。
  4. default-target-url="/index.jsp" 表示授权成功之后默认跳转到index.jsp界面。
  5. logout-url="/j_spring_security_logout" 表示退出操作要提交到的url。
  6. logout-success-url="/login.jsp" 表示退出操作成功后跳转到的界面。

页面

  • login.jsp
<html>
<body>
<form action="j_spring_security_check" method="POST">
<input type="text" name="username" /> </br>
<input type="password" name="password" /> </br>
<input type="submit" value="submit" />
</form>
</body>
</html>
  • index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html>
<html lang="en"> <html>
<body>
<h2>this is a user page </h2>
<a href="${pageContext.request.contextPath}/j_spring_security_logout">退出登陆</a>
</body>
</html>

最新文章

  1. u-boot源码分析之C语言段
  2. C# WebBrowser 获得选中部分的html源码
  3. C++类成员函数的重载、覆盖和隐藏区别?
  4. 1019在winddow上面安装MYSQL服务
  5. 将 JAR 转为 EXE – JSMOOTH 的使用教程(第二期)(转载)
  6. JavaScript获取当前根目录
  7. c# 复习
  8. Linux下如何查找可执行文件
  9. jquery图片轮播代码
  10. 自己编写jQuery动态引入js文件插件 (jquery.import.dynamic.script)
  11. HTMLTestRunner测试报告美化
  12. 【转】Keberos认证原理
  13. 归并排序Python 实现
  14. 20155326 第五周加分题--mybash的实现
  15. SSM整合——spring4.*配置案例
  16. Oracle性能调整ASH,AWR,ADDM
  17. js 使用jquery.form.js文件上传
  18. windows下python检查文件是否被其它文件打开
  19. Redis实现分布式锁2
  20. 20155308 2016-2017-2 《Java程序设计》实验二 Java面向对象程序设计

热门文章

  1. Python的五大数据类型的作用、定义方式、使用方法
  2. vue使用canvas生成海报图
  3. Vue Cli3 TypeScript 搭建工程
  4. sqli(9)
  5. less: 变量
  6. 将postgresql中的数据实时同步到kafka中
  7. Python操作cx_Oracle笔记
  8. hdu 6035:Colorful Tree (2017 多校第一场 1003) 【树形dp】
  9. web前后端分离漏洞分析防御
  10. 树状数组(一维&amp;二维函数)