Springsecurity3.1.3配置多个登陆页面
需求:网站的前台和后台不同的url需要不同的登陆页面,不同的异常捕获方式。
spring-security3.1以后的版本支持多个<http>标签,因此本文所采用的方式就是使用两个,实际上是三个<http>标签实现上述功能(为什么是是要三个将会在下面加以说明)
spring-security.xml配置如下
<!-- 后台管理 -->
<http pattern="/admin/**" authentication-manager-ref="authmanager" >
<intercept-url pattern="/admin/login**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
<form-login login-page="/admin/login.jsp"
authentication-failure-url="/admin/login_fail.jsp"
default-target-url="/admin/index.jsp"
login-processing-url="你的Url"/>
</http>
<!-- 前台 -->
<http pattern="/mycenter/**" authentication-manager-ref="authmanager">
<intercept-url pattern="/front/login**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/mycenter/**" access="ROLE_USER" />
<form-login login-page="/front/login.jsp"
authentication-failure-url="/front/login_fail.jsp"
default-target-url="/front/index.jsp"
login-processing-url="你的Url"/>
</http>
按照上述方法配置后,会出现程序代码中,无法获取当前登录用户信息的情况。SecurityContextHolder.getContext()为空。尤其是不在前台后台正则匹配下的url的程序段中。
出现这种情况是因为两个http拦截了两种特定的url表达式,那么其余的url将不会被springsecurity拦截,因此也就没办法再相应url的方法中获得当前登录用户的信息。
解决方法是在加上第三个<http>标签,匹配任意的url来把其余的url配置到过滤器。
Springsecurity3.1.3配置多个登陆页面的更多相关文章
- Struts2文件配置 登陆页面
Struts 版本号 struts-2.3.16.3 web.xml 配置 <?xml version=”1.0″ encoding=”UTF-8″?> <web-app versi ...
- cas配置不通过登陆校验的页面
项目中的单点登录是通过CAS配置的,如果是未登录状态,那么请求在通过CAS过滤器校验时会转向登陆页面,无法通过访问类似http://localhost:8080/portal/business-plu ...
- SpringSecurity自定义登陆页面和跳转页面
如果我们不用form-login说明登陆界面,springsecurity框架将自动为我们生成登陆界面 现在我们不想用自动生成的登陆界面了,而想使用自定义的漂亮的登陆界面 则需要使用<secur ...
- 通过cookies跳过验证码登陆页面,直接访问网站的其它URL
我每次手动访问去NN网的一家酒店,就不需要登陆,一旦我用脚本打开就会让我登陆,而登陆页面又有验证码,不想识别验证码,所以就想:“通过cookies跳过验证码登陆页面,直接访问网站的其它URL” 转 ...
- Shiro整合SSH开发3:配置Shiro认证后页面地址跳转问题(和详述不配置须要注意的问题)
在视频教程中讲请求认证成功后跳转页面的问题是一笔带过的,可是我认为有必要单独写一篇相应的文章进行叙述. 我用了SSH来整合Shiro,在开发后验证的过程中,每次登陆后Shiro都会 ...
- 一步一步实现web程序信息管理系统之二----后台框架实现跳转登陆页面
SpringBoot springboot的目的是为了简化spring应用的开发搭建以及开发过程.内部使用了特殊的处理,使得开发人员不需要进行额外繁锁的xml文件配置的编写,其内部包含很多模块的配置只 ...
- JavaWeb-SpringSecurity自定义登陆页面
系列博文 项目已上传至guthub 传送门 JavaWeb-SpringSecurity初认识 传送门 JavaWeb-SpringSecurity在数据库中查询登陆用户 传送门 JavaWeb-Sp ...
- 5、struct2使用登陆的时候重定向功能,如果没有登陆,重定向到登陆页面
1.实现这样一份功能,列如用户在进行某些操作的时候,如果没有登陆重定向到登陆页面 首先:我们创建一个功能操作页面,用户准备在该页面执行某些操作 在index.jsp中 <%@ page lang ...
- 【从零开始学BPM,Day5】报表配置及自定义功能页面开发
[课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第五天课程] 1.课程概要 Step 1 软件下载:H3 BP ...
随机推荐
- AC日记——最小的N个和 codevs 1245
1245 最小的N个和 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 有两个长度为 N ...
- hibernate三种状态
转自:http://www.cnblogs.com/xiaoluo501395377/p/3380270.html 学过hibernate的人都可能都知道hibernate有三种状态,transien ...
- 初识NodeJS
1.JavaScript 模块化规范 浏览器环境 AMD Asynchronous Module Definition RequireJS CMD Common Module Definition S ...
- Basic EEG waves 四种常见EEG波形
Source: https://www.medicine.mcgill.ca/physio/vlab/biomed_signals/eeg_n.htm The electroencephalogram ...
- webgl动画小测试
// MultiPoint.js (c) 2012 matsuda // Vertex shader program var VSHADER_SOURCE = 'attribute vec4 a_Po ...
- [开源]无sql之旅-Chloe.ORM之增删查改
扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询. ...
- 创建ejs模板的express工程
npm install -g express npm install -g express-generator express -e projectName cd projectName npm in ...
- PDF.NET内存数据库的使用小结
深蓝医生的PDF.NET数据开发框架提供了一个建议的内存数据库功能,具体的功能介绍我就不多说了,可以看医生的博文<移花接木:当泛型方法遇上抽象类----我的“内存数据库”诞生记>. 我之所 ...
- 知乎一道前端面试题详解,关于this的使用
请说明要输出正确的myName的值要如何修改程序?并解释原因 foo = function(){ this.myName = "Foo function."; } foo.prot ...
- 小猪cms模块继承
TextAction 继承 UserAction 继承 BaseAction 继承 Action TextAction 路径 PigCms\Lib\Action\User UserAction 路径 ...