共 18 篇文章 |
|
我的shiro之旅: 十八 例子源码。因为墙内经常访问github不正常,将例子源码移到oschina git上。源码地址:http://git.oschina.net/pickear/weasel-spring-shiro/tree/master,doc目录下有个集成了shiro的web项目。涉及到的依赖包都在http://git.oschina.net/pickear/这个路径下找到。 阅120 转1 评0 公众公开 17-12-27 15:25 |
这个工具类主要是生成一个Captcha,把Captcha的image写回客户端,并缓存到session中,当check后再把Captcha从session中删除。POST) public void checkCaptcha(HttpServletRequest request,HttpServletResponse response){ String captchaCode = WebUtils.getCleanParam(request, "captcha"); 阅76 转1 评0 公众公开 17-12-27 15:24 |
我的shiro之旅: 十五 shiro 登录成功后,跳转到登录前的页面。比如,在"登录"链接后加一个url参数,如:http://www.xxx.com/login.html?url=http://www.xxx.com/xx.html,这个url就是当前页面。但当我们用配置/xxx.html=authc这种方式,限制用户访问/xxx.html连接时必须是认证过的用户,否则shiro的filter将会重定向到登录页面,上面... 阅96 转1 评0 公众公开 17-12-27 15:24 |
我的shiro之旅: 十四 shiro 自动登录。/** * Constructs a new {@code CookieRememberMeManager} with a default {@code rememberMe} cookie template. */ public CookieRememberMeManager() { Cookie cookie = new SimpleCookie(DEFAULT_REMEMBER_ME_COOKIE_NAME);} @SuppressWarnings({"UnusedDeclar... 阅313 转1 评0 公众公开 17-12-27 15:24 |
我的shiro之旅: 十三 shiro 用户的登录与退出。} public void baseLogin(User user, HttpServletRequest request, HttpServletResponse response) { try { Subject subject= SecurityUtils.getSubject();当调用subject的login方法进行用户认证明,shiro将会调用我们息定义的realm相关方法,前面的文章也有介绍。pub... 阅4025 转13 评0 公众公开 17-12-27 15:24 |
我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)当用户登录成功后,shiro会把用户名放到session的attribute中,key为DefaultSubjectContext_PRINCIPALS_SESSION_KEY,这个key的定义是在shiro的org.apache.shiro.subject.support.DefaultSubjectContext中,这个类有三个public的静态属性,其他都为private。通过用户名使用用户对应的... 阅522 转1 评0 公众公开 17-12-27 15:24 |
} } /** * @return */ public Set<String> getAuthsAsString() { Set<String> auths = new HashSet<String>(); 阅69 转1 评0 公众公开 17-12-27 15:23 |
我的shiro之旅: 十 自定义shiro的SessionIdCookie.还有一种就是浏览器打开很久都没有操作,然后shiro定时清理了不活动的session,这时浏览器再发请求过来,因为session已被清理,也会抛There is no session with id。在上面还配置了两个关于session有效期的配置,一个是sessionValidationInterval,表示shiro的定时器多久去检查一次session的有... 阅278 转1 评0 公众公开 17-12-27 15:23 |
我的shiro之旅: 九 shiro 清理缓存的权限信息。在文章八讲到了shiro缓存权限信息然后达到共享目的,不过存在一个问题,当用户的权限发生改变的时候,需要用户重新登录,从新缓存用户权限信息。import org.apache.shiro.cache.import com.concom.security.infrastructure.shiro.cache.当权限缓存被清理后,shiro需要授权时,查找缓存没有权限信... 阅2944 转21 评0 公众公开 17-12-27 15:23 |
caches.isEmpty()) { for (Cache cache : caches.values()) { LifecycleUtils.destroy(cache);} } 其中有个很重要的方法就是getCache方法,有个很重要的属性就是private final ConcurrentMap<String, Cache> caches;caches是一个线程安全的ConcurrentMap类型,用是存放Cache的,在这里,至少存放两个Cac... 阅186 转1 评0 公众公开 17-12-27 15:23 |