文档章节

SessionManager支持token认证

x
 xxm1995
发布于 2018/11/27 16:21
字数 150
阅读 1
收藏 0

1.定义一个SessionManager类

创建一个类,继承AuthorizingRealm ,然后在doGetAuthenticationInfo中重写认证的方法

/**
 * 重写 SessionId 获取方式
 * @param request 请求
 * @param response 响应
 * @return id
 */
@Override
protected Serializable getSessionId(ServletRequest request, ServletResponse response) {
    String id = WebUtils.toHttp( request ).getHeader( AUTHORIZATION );
    //如果请求头中有 Authorization 则其值为sessionId
    if (!StringUtils.isEmpty( id )) {
        request.setAttribute( REFERENCED_SESSION_ID_SOURCE, REFERENCED_SESSION_ID_SOURCE );
        request.setAttribute( ShiroHttpServletRequest.REFERENCED_SESSION_ID, id );
        request.setAttribute( ShiroHttpServletRequest.REFERENCED_SESSION_ID_IS_VALID, Boolean.TRUE );
        return id;
    } else {
        //否则按默认规则从cookie取sessionId
        return super.getSessionId( request, response );
    }
}

© 著作权归作者所有

x
粉丝 0
博文 24
码字总数 12971
作品 0
菏泽
私信 提问
shiro 之 认证登录的demo

1 shiro登录的简单demo 1.1 web.xml添加shiroFilter <!-- shiro过虑器,DelegatingFilterProx会从spring容器中找shiroFilter --> <filter> <filter-name>shiroFilter</filter-name> <filter......

龙之天空
2015/11/17
0
2
shiro 在使用shiro时候配置的ehcache.xml不起作用

在ehcache.xml中 中value=shiro-activeSessionCache 根本没作用啊 在ehcache.xml中配置的这个cache没起作用 反而是 中的设置失效时间起作用了..... 还有个问题就是我用cacheManager中取得use...

灯光下的宁静
2014/05/15
6.8K
2
Apache Shiro SessionManager配置详解.

SessionManager是在应用程序中为所有Subject提供Session的管理,包括创建,删除,失效及验证等。同其的核心组件一样,SessionManager 也是一个由SecurityManager 维护的顶级组件。 在Shiro中...

一号男嘉宾
2015/06/03
0
0
SpringMVC +shrio 不执行userRealm方法??求解

配置文件如下: ............ userRealm方法如下: public class UserRealm extends AuthorizingRealm { @Autowired private IAdminService adminService; //授权方法 @Override protected ......

咖啡加糖
2017/01/04
358
1
shrio+SpringMVC 登录验证失败,求解了,各位大神.....

抛出的异常是: try { user.login(token); return new ModelAndView("redirect:/platform/index/index"); }catch (IncorrectCredentialsException e) { errorMessage = "登录密码错误. Passw......

咖啡加糖
2017/01/06
319
0

没有更多内容

加载失败,请刷新页面

加载更多

C++的变量初始化

C++中变量的初始化有很多种方式,如:默认初始化,值初始化,直接初始化,拷贝初始化,列表初始化。 1、默认初始化:默认初始化是指定义变量时没有指定初值时进行的初始化操作。 如:int a;...

天王盖地虎626
29分钟前
0
0
MySQL-入门(一)

一、SQL的分类 DDL(Data Definition Language):数据定义语言,用来操作数据库对象:库、表、列等; DML(Data Manipulation Language):数据操作语言,用来增删改数据库中的数据; DCL(...

潜行-L
32分钟前
1
0
微服务架构在Kubernetes上的实现

我们讨论了最近的微服务趋势,以及伴随微服务架构可能出现的一些复杂问题。在接下来的几周内,我们将深入探讨这个问题。我们将探讨不同设计选择中固有的权衡,以及可以采取哪些措施来缓解这些...

别打我会飞
33分钟前
3
0
IDEA2018导入eclipse web项目

看别人的攻略:https://blog.csdn.net/qq_33229669/article/details/83751316 完成之后,出现了IDEA编译java报错:找不到符号_的解决方法错误, 然后百度出来是编码问题, 1.更改editor的文件编码...

流光韶逝
48分钟前
3
0
NIO 学习

比如 socket 通信, 服务的的 socket 对应的 线程会一直等待 client 端的 消息。 这就是bio的 阻塞 。而且在高并发下 很容易出现问题。 1, 非阻塞式IO模型、 2. 弹性伸缩能力强(服务的的接...

之渊
51分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部