- 浏览: 122339 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (165)
- 数据库 (45)
- 架构 (0)
- java web前端+框架 (9)
- java web后端+框架 (56)
- Eclipse插件 (1)
- 解题思路 (2)
- Eclipse (2)
- linux (6)
- jquery (4)
- 正则 (3)
- jsp (1)
- javascript (8)
- oracle (39)
- 生活 (1)
- weblogic (5)
- tomcat (3)
- Jrebel (1)
- powerdesigner (1)
- svn (1)
- log4j (1)
- IDE (1)
- POI (2)
- jvm (2)
- ssh (1)
- http (1)
- notepad++ (2)
- 润乾 (1)
- 设计模式 (0)
- 实用类Utils (2)
- 算法 (1)
- xml (1)
- 实用类 (2)
最新评论
/**
* 单一登录过滤器
*
* @author vernon.chen
*/
public class SsoFilter implements Filter {
private static Logger logger = LoggerFactory.getLogger(SsoFilter.class);
// @Autowired
private SsoManager ssoManager;
/**
* Default constructor.
*/
public SsoFilter() {
// nothing to do.
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// nothing to do.
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) request;
HttpServletResponse httpRes = (HttpServletResponse) response;
HttpSession session = httpReq.getSession();
String sessionId = session.getId();
UserDto userDto = (UserDto) SecurityUtils.getSubject().getSession().getAttribute(SysConstants.LOGIN_USER_INFO);
String requestURI = httpReq.getRequestURI();
if (null != userDto && //
(false == requestURI.startsWith(httpReq.getContextPath() + "/static/"))) {// 1-用户已登录
String accountId = "";// 登录账号ID
if (userDto instanceof AccountDto) {
accountId = ((AccountDto) userDto).getAccountId();
} else if (userDto instanceof CompanyAccountDto) {
accountId = ((CompanyAccountDto) userDto).getAccountId();
}
Sso sso = this.ssoManager.findByAccountId(accountId);
String sessionId4lastLogin = sso.getSessionId();
if (false == sessionId.equals(sessionId4lastLogin)) {// 2-但不是最后一次登录时的SessionId
boolean committed = httpRes.isCommitted();
if (false == committed) {
httpRes.sendRedirect(httpReq.getContextPath() + "/logout?isKickedOut=true");// 3-用户登出
return;
}
}
}
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(
FilterConfig fConfig) throws ServletException {
ServletContext context = fConfig.getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
ssoManager = (SsoManager) ctx.getBean("ssoManager");
}
* 单一登录过滤器
*
* @author vernon.chen
*/
public class SsoFilter implements Filter {
private static Logger logger = LoggerFactory.getLogger(SsoFilter.class);
// @Autowired
private SsoManager ssoManager;
/**
* Default constructor.
*/
public SsoFilter() {
// nothing to do.
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// nothing to do.
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) request;
HttpServletResponse httpRes = (HttpServletResponse) response;
HttpSession session = httpReq.getSession();
String sessionId = session.getId();
UserDto userDto = (UserDto) SecurityUtils.getSubject().getSession().getAttribute(SysConstants.LOGIN_USER_INFO);
String requestURI = httpReq.getRequestURI();
if (null != userDto && //
(false == requestURI.startsWith(httpReq.getContextPath() + "/static/"))) {// 1-用户已登录
String accountId = "";// 登录账号ID
if (userDto instanceof AccountDto) {
accountId = ((AccountDto) userDto).getAccountId();
} else if (userDto instanceof CompanyAccountDto) {
accountId = ((CompanyAccountDto) userDto).getAccountId();
}
Sso sso = this.ssoManager.findByAccountId(accountId);
String sessionId4lastLogin = sso.getSessionId();
if (false == sessionId.equals(sessionId4lastLogin)) {// 2-但不是最后一次登录时的SessionId
boolean committed = httpRes.isCommitted();
if (false == committed) {
httpRes.sendRedirect(httpReq.getContextPath() + "/logout?isKickedOut=true");// 3-用户登出
return;
}
}
}
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(
FilterConfig fConfig) throws ServletException {
ServletContext context = fConfig.getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
ssoManager = (SsoManager) ctx.getBean("ssoManager");
}
发表评论
-
eclipse java代码格式化 javaformatter20150123.zip
2015-01-23 11:30 665eclipse java代码格式化 javaformatter ... -
List to Map
2015-01-21 17:22 437/** * <p>将List变为Map</p ... -
读取access工具类-ReadAccessUtil2
2015-01-06 13:52 505import com.healthmarketscience. ... -
ParameterizedType获取java泛型参数类型
2014-11-14 15:15 662ParameterizedType获取java泛型参数类型 ... -
分页帮助类-oracle-java
2014-10-09 17:46 420/** * 分页帮助类 * * @author ver ... -
java自动实例化List AutoArrayList
2014-07-21 15:51 704import java.util.ArrayList; p ... -
正则 java 查找 打印 所有匹配项
2014-06-18 11:26 598package com.test.regex; import ... -
第3方包读取Access
2014-05-26 16:07 624package com.test; import java. ... -
多线程加签验签例子.zip
2014-05-26 16:08 479多线程加签验签例子.zip -
DateTimeUtils
2014-05-26 16:08 616import java.text.DateFormat; im ... -
listToMap
2014-05-26 16:09 396/** * List实用类 * * @author v ... -
JdbcTemplateRowMapper
2015-05-19 15:44 536import java.lang.reflect.Constr ... -
KeyValuePair2
2015-05-19 15:44 468/** * 键值对 * * @author verno ... -
OrderUtil -排序工具
2014-05-22 09:35 612/** * 排序工具 * * @author vern ... -
ZipUtils
2014-05-22 09:35 420import java.io.BufferedOutputSt ... -
TimerUtils
2014-05-22 09:34 433import org.slf4j.Logger; import ... -
Excel View 4 Spring
2014-05-22 09:29 302Excel View 4 Spring @RequestMa ... -
DOMUtils xml操作实用类
2014-04-07 21:41 776/* * Copyright 2001-2004 The A ... -
生成验证码 数学+字母
2014-04-01 10:08 398public static String getCharAnd ... -
ConnUtils2程序耗时输出 oracle.sql.Clob类型转换成String类型
2014-03-29 10:00 650package com.achievo.ems.web.ser ...
相关推荐
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它...
标签过滤器 正在安装 添加以下 allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 将库导入gradle dependencies { implementation '...
利用过滤器法运行速度快和封装器法精度高的优点,提出了一种新的...运用滚动轴承故障模拟试验的数据对所提出的算法进行了验证,结果表明,相比单一的过滤器法或封装器法,该算法能够同时提高特征选择的性能和效率。
首先,标签内存储[k]个哈希函数,标签在接收到阅读器的查询帧后多次回复阅读器构造虚拟克鲁姆过滤器,找到阅读器通信区域内的标签集合[M];然后,[M]中标签通过多轮哈希运算使得阅读器构建时隙状态向量,目的是给每...
该机制由局部过滤器和全局过滤器组成,局部过滤器处理单个阅读器接收的数据,通过时间延迟对数据按时间戳排序,并根据RFID数据流的分布情况设定不同的约束条件删除多读数据;而全局过滤器处理多个阅读器接收的数据,...
数据库数据关联输入拼音自动过滤控件,内含 Caption 属性编辑器。 只在 Delphi7 下测试通过,曾试图移植到 Delphi2009,但是 ChineseSpell.pas 单元出错,哪位高人修改后,请给我传一份,感激不尽。 (抱歉,关键部分...
filter_var() 函数通过指定的过滤器过滤一个变量。 语法: filter_var(variable, filter, options) 参数介绍: variable,(必需)规定要过滤的变量。 filter,(可选)规定要使用的过滤器的 ID。默认是 FILTER_...
api网关服务 µService的作用是什么...Zuul的实现基于过滤器,该过滤器在请求处理的不同步骤中起作用: 在路由之前预先执行 ROUTE-过滤器,可路由到后端服务 POST-由后端服务处理路由的请求后执行 错误 如何设置? 您
在伪代码中: Y(i) = sum(X(j)) / (2*M+1), 对于 j = (iM):(i+M), and i=1:length(X) 对于矩阵,Y = RUNMEAN(X,M) 或 RUNMEAN(X,M,[]) 对 X 的第一个非单一维度进行运算。 RUNMEAN(X,M,DIM) 计算沿维度 DIM 的运行...
里程计msg + imu msg(通过消息过滤器同步) 单一里程计味精 单IMG消息 校正步骤的可能输入: 里程计msg + imu msg(通过消息过滤器同步) 单一里程计味精 单IMG消息 校正步速可能会慢于预测率。 当前支持的...
EnclosureShop提供了喇叭单元和音箱设计,而CrossoverShop则提供了设计过滤器布局技术的工具。通过两者的合作,这两种程序希望能组成一个完整的设计和分析软件。 EnclosureShop比较特殊的功能包括有衍射分析、外壳...
- 列表或表格显示与过滤器匹配的文档,如果过滤器为空,则显示所有文档。 - 当有新文档刚刚添加到索引时,它们将以红色显示在列表的顶部,这意味着它们需要添加标题和关键字。 - 双击项目时,文档将在新窗口中打开 ...
假设由一个匀速运动引起的模糊,我们可以把调查局限于一维箱式过滤器模糊。这使我们能够把期望的梯度分布建模为一个关于模糊核宽度的函数。这些分布在区别不同模糊的区域方面功能出奇的强大。该方法在含有丰富纹理的...
可编程功率限制,差分/单端输入,带有单过滤器单声道配置的立体声和单声道模式,单一电源减少了组件数量,集成的自我保护电路包括过压、欠压、过热、DC检测、和带有错误报告的短路保护,21V时,2x50W被驱动进入一个4Ω...
PentahoTransparentAuthentication Pentaho透明身份验证是Pentaho BA Server的插件,以Spring安全性过滤器和一堆支持类的形式为平台提供了附加的身份验证和登录功能。 该项目的目标是提供一种透明的身份验证和自动...
该项目已移至(作为Maven模块)五重认证Pentaho商业智能服务器的身份验证扩展机制pentaho-authentication-ext是Pentaho BI Server的插件,以...安全性过滤器和一堆支持类的形式为平台提供了附加的身份验证和登录功能...
传统邮件过滤方法单一,过滤精度不高,已不能很好地满足需求。结合规则过滤技术,分析了基于文本内容的贝叶斯分类器实现的关键技术与方法,并给出核心过滤算法在邮件分类中的实现具体方法及过程,进而完成垃圾邮件的...
菜单增加关联资源管理器,取消关联资源管理器选项 资源管理器菜单修改为子菜单方式 属性中增加占用磁盘空间项,可以显示动态卷目前已经占用的磁盘空间 在加密卷右键菜单上增加了创建桌面快捷方式菜单项 Mount命令行...
演示代码包括: 1) 单型噪声抑制一些进一步的演示代码可以在 WITM 过滤器的代码中找到https://www.mathworks.com/matlabcentral/fileexchange/48585-weighted-iterative-truncated-mean-filter 和 ITTM 过滤器...
JPG,GIF)工具,能把字体导出为图片,给有特别需求的人用用哦,快速预览字体成千上万的文件夹或驱动器的字体,先进的过滤和搜索选项,查看能力压缩文件(一个或多个)和预览数百字体单一或10列!它支持完整的管理...