权限管理

配置不过滤的资源

  • 方法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-loginlogin-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>

转载于:https://www.cnblogs.com/nwu-edu/p/9424860.html

Spring Security 02相关推荐

  1. Spring Security(02)认证配置

    前面只是简单使用了springsecurity的登录控制功能,当然实际使用中是一定需要写一些自定义配置的:本节将通过springsecurity配置一些功能: 通过数据库用户密码完成认证 使用自定义登 ...

  2. 八、springboot整合Spring Security

    springboot整合Spring Security 简介 Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架.它是保护基于Spring的应用程序的事实标准. Spr ...

  3. Spring Security 实战:使用 JWT 认证访问接口

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 欢迎阅读Spring Security 实战 ...

  4. Spring Security Java Config Preview--官方

    原文地址:[1]https://spring.io/blog/2013/07/02/spring-security-java-config-preview-introduction/ [2]https ...

  5. Spring Security OAuth2——自定义OAuth2第三方登录(Gitee)并与UsernamePassword登录关联解决方案

    前文:Spring Security OAuth2--自定义OAuth2第三方登录(Gitee) Maven 主要 <!--Spring Security--><dependency ...

  6. Spring boot+Spring Security 4配置整合实例

    本例所覆盖的内容: 1. 使用Spring Security管理用户身份认证.登录退出 2. 用户密码加密及验证 3. 采用数据库的方式实现Spring Security的remember-me功能 ...

  7. 在15分钟内使用Spring Boot和Spring Security构建一个Web应用程序

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 开发人员 ...

  8. Spring Security中的SecurityContext和SecurityContextHolder是什么?

    SecurityContext和SecurityContextHolder是Spring Security的两个基本类. SecurityContext用于存储当前经过身份验证的用户的详细信息,也称为 ...

  9. 如何使用Spring Security和Basic身份验证保护Jersey REST服务

    在我之前的博客文章" 检查REST API是否有效的快速方法–从清单文件中获取GET详细信息"中 ,我展示了如何开发REST资源以轻松检查开发的REST API是否可用. 在本文中 ...

  10. OAuth与Spring Security

    摘自Wikipedia: OAuth ( 开放式身份验证 )是一种开放式身份验证标准. 它允许用户与其他站点共享存储在一个站点上的私有资源(例如照片,视频,联系人列表),而不必发出其凭据(通常是用户名 ...

最新文章

  1. 天空之城(君をのせて)主题曲
  2. Java 18 要来了,你不会还在用Java 8吧?
  3. 疫情对房地产的后期影响:再见已不是从前
  4. [转]Framework源码查看
  5. [BUUCTF-pwn]——inndy_rop
  6. lib60870-IEC 60870-5-101 / 104 协议对总查询的处理
  7. 妈妈再也不用担心别人问我是否真正用过redis了
  8. 【Elasticsearch】Elasticsearch ICU现在可以理解表情符号了!
  9. golang fatal error: all goroutines are asleep - deadlock!
  10. 基于Go Packet实现网络数据包的捕获与分析
  11. android实现视频壁纸,ffmpeg/camera实现最近很火的视频壁纸,相机壁纸
  12. arduino制作AVRISP烧写器
  13. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(6):音频
  14. 《与我长跑十年的女友就要嫁人了》…
  15. WiFi测试规范总结
  16. 品牌出海:如何做好本土化运营?
  17. MacOS 安装 gstreamer 最新版本(1.20.0)
  18. 学习编程太枯燥?12款助你学编程的免费游戏送上!
  19. 全面解读Java线程池的工作原理
  20. DM与ML的主要区别

热门文章

  1. java 短地址_URL短地址压缩算法 微博短地址原理解析(再转与Java实现) | 学步园
  2. java 方法绑定_java 方法调用绑定
  3. oracle gc chain,ORACLE GC 类等待事件汇总分析
  4. pythontkinter使按钮失效_python2.7为什么点击了quot;开始quot;按钮后,tkinter上的按钮,图中红色部分,再也点不动了? - SegmentFault 思否...
  5. scala循环 方法与函数
  6. Dev Express 安装
  7. Groovy 学习手册(4)
  8. 网站文件系统发展分布式文件系统fastDFS
  9. 利用bloom filter算法处理大规模数据过滤
  10. 第 7 章 缓存应用程序块