Spring Security 02
权限管理
配置不过滤的资源
- 方法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
- login-page="/login.jsp" 表示使用login.jsp代替默认登陆界面。
- login-processing-url="/j_spring_security_check" 使用spring-security 4.x版本必须添加该属性,表示登录表单提交路径。
- authentication-failure-url="/login.jsp" 表示授权失败之后跳转到login.jsp界面。
- default-target-url="/index.jsp" 表示授权成功之后默认跳转到index.jsp界面。
- logout-url="/j_spring_security_logout" 表示退出操作要提交到的url。
- 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>
Spring Security 02的更多相关文章
- Spring Security(02)——关于登录
		目录 1.1 form-login元素介绍 1.1.1 使用自定义登录页面 1.1.2 指定登录后的页面 1.1.3 指定登录失败后的页面 1.2 http-basi ... 
- 02 spring security 自定义用户认证流程
		1. 自定义登录页面 (1)首先在static目录下面创建login.html 注意: springboot项目默认可以访问resources/resources, resources/s ... 
- 使用 Spring Security 保护 Web 应用的安全
		安全一直是 Web 应用开发中非常重要的一个方面.从安全的角度来说,需要考虑用户认证和授权两个方面.为 Web 应用增加安全方面的能力并非一件简单的事情,需要考虑不同的认证和授权机制.Spring S ... 
- 权限开发 spring security 3.0.7 序列1 数据库脚本
		spring security 3 细粒度权限控制第一篇,关于权限的初始化测试数据库脚本. 空间脚本: drop user FrameworkTest cascade; drop tablespa ... 
- spring security oauth2 client_credentials模
		spring security oauth2 client_credentials模 https://www.jianshu.com/p/1c3eea71410e 序 本文主要简单介绍一下spring ... 
- Spring Security原理与应用
		Spring Security是什么 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置 ... 
- 使用spring security 2.0 和extjs 3.0实现web登录
		使用spring security 2.0 和extjs 3.0实现web登录 1开发环境说明 本例使用MyEclipse 6.5作为开发工具,jdk1.5作为编译工具,tomcat6.0作为web运 ... 
- Spring Security认证提供程序
		1.简介 本教程将介绍如何在Spring Security中设置身份验证提供程序,与使用简单UserDetailsService的标准方案相比,提供了额外的灵活性. 2. The Authentica ... 
- 转	 Spring Security 简介
		https://blog.csdn.net/xlecho/article/details/80026527 Spring Security 简介 2018年04月21日 09:53:02 阅读数:13 ... 
随机推荐
- python学习笔记(7): 面向对象
			class Foo: #类中的函数 def bar(self): #功能阐述 print('Bar') pass def hello(self,name): print('i am %s' %name ... 
- (转)nginx+redis实现接入层高性能缓存技术
			转自:https://blog.csdn.net/phil_code/article/details/79154271 1. OpenRestyOpenResty是一个基于 Nginx与 Lua的高性 ... 
- bzoj5084 hashit   广义SAM+树链的并
			题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5084 题解 考虑平常对于静态问题,我们应该如何用 SAM 求本质不同的子串个数. 对于一个常规 ... 
- cmd优化
			cmd很方便,很简约,但是看久了也会视觉疲劳 因此我们来优化一下cmd 原博文是我的一位同学写的,链接如下:https://www.cnblogs.com/ljsh/p/10877715.html 打 ... 
- BZOJ 4407: 于神之怒加强版 莫比乌斯反演 + 线筛积性函数
			Description 给下N,M,K.求 Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意 ... 
- 手动ubuntu 18.04修改登录锁屏界面效果(含登录背景修改)flat-remix
			前言 在ubuntu 18.04,可以通过修改/etc/alternatives/gdm3.css来进行修改 本来想直接使用flat-remix主题,但是只有这个登录界面没有达到作者演示的效果,所以手 ... 
- Activiti插件安装(二)
			Eclipse安装 网络在线安装:1) 打开 Help -> Install New Software. 在如下面板中: 2) 在如下 Install 界面板中,点击 Add 按钮: 配置新装插 ... 
- spring boot 应用发布到Harbor上
			具体的harbor配置和docker配置可以查看前面几篇,也包含了我遇到的问题 settings.xml配置 <server> <id>docker-hub</id> ... 
- Python_003(字符串的神操作)
			一.编码问题 1.编码:计算机最早是ACSII码,美国人创造的,包含了英文字母(大写字母,小写字母)数字,标点等特殊符号; :共有7位0和1组成,表示128个ACSII码,但是计算机对7这个数字不敏感 ... 
- CSU 1551 Longest Increasing Subsequence Again(树状数组 或者 LIS变形)
			题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1551 升级版:Uva 1471 题意: 让你求删除一段连续的子序列之后的LIS. 题 ... 
