- 浏览: 267365 次
文章分类
- 全部博客 (96)
- 经验 (53)
- 小制作 (6)
- 人生 (1)
- 技术选型 (2)
- 技术学习 (2)
- memo (1)
- 系统架构 (2)
- 经验 Windows (3)
- HP-UX (1)
- Ubuntu (1)
- java7 (1)
- tomcat7 (1)
- linux (2)
- AIX (1)
- mysql (1)
- intellij (2)
- eclipse (1)
- HTML (1)
- spring (4)
- shiro (1)
- java (6)
- jetty (1)
- jackson (1)
- javascript (1)
- spring-boot (2)
- rust (1)
- tomcat (1)
- spring-cloud (1)
- ffmpeg (1)
最新评论
-
安静听歌:
你好,请问你是如何控制他们的启动顺序的呢,手动控制吗?
spring cloud 配置中心和服务注册中心启动顺序 -
dwangel:
zjturn 写道想请教个问题:第二种方法,首先配置logou ...
spring mvc中 shiro logout 配置方式 -
zjturn:
想请教个问题:第二种方法,首先配置logout的bean,然后 ...
spring mvc中 shiro logout 配置方式 -
dwangel:
czltx224 写道加个参数就OK 了
<proper ...
Hessian调用出错 -
czltx224:
加个参数就OK 了<property name=&quo ...
Hessian调用出错
经过查找论坛和分析源码,确认了是在ShiroHttpServletResponse里加上的。
因此extends,覆盖相应方法,把添加JSESSIONID部分去掉。
扩展ShiroFilterFactoryBean, 使用新建的MyShiroHttpServletResponse。
在shiro相关配置里替换成自己的MyShiroFilterFactoryBean(嗯,我是shiro和spring组合用的)
因此extends,覆盖相应方法,把添加JSESSIONID部分去掉。
public class MyShiroHttpServletResponse extends ShiroHttpServletResponse { public MyShiroHttpServletResponse(HttpServletResponse wrapped, ServletContext context, ShiroHttpServletRequest request) { super(wrapped, context, request); } @Override protected String toEncoded(String url, String sessionId) { if ((url == null) || (sessionId == null)) return (url); String path = url; String query = ""; String anchor = ""; int question = url.indexOf('?'); if (question >= 0) { path = url.substring(0, question); query = url.substring(question); } int pound = path.indexOf('#'); if (pound >= 0) { anchor = path.substring(pound); path = path.substring(0, pound); } StringBuilder sb = new StringBuilder(path); // if (sb.length() > 0) { // session id param can't be first. // sb.append(";"); // sb.append(DEFAULT_SESSION_ID_PARAMETER_NAME); // sb.append("="); // sb.append(sessionId); // } sb.append(anchor); sb.append(query); return (sb.toString()); } }
扩展ShiroFilterFactoryBean, 使用新建的MyShiroHttpServletResponse。
public class MyShiroFilterFactoryBean extends ShiroFilterFactoryBean { @Override public Class getObjectType() { return MySpringShiroFilter.class; } @Override protected AbstractShiroFilter createInstance() throws Exception { SecurityManager securityManager = getSecurityManager(); if (securityManager == null) { String msg = "SecurityManager property must be set."; throw new BeanInitializationException(msg); } if (!(securityManager instanceof WebSecurityManager)) { String msg = "The security manager does not implement the WebSecurityManager interface."; throw new BeanInitializationException(msg); } FilterChainManager manager = createFilterChainManager(); PathMatchingFilterChainResolver chainResolver = new PathMatchingFilterChainResolver(); chainResolver.setFilterChainManager(manager); return new MySpringShiroFilter((WebSecurityManager) securityManager, chainResolver); } private static final class MySpringShiroFilter extends AbstractShiroFilter { protected MySpringShiroFilter(WebSecurityManager webSecurityManager, FilterChainResolver resolver) { super(); if (webSecurityManager == null) { throw new IllegalArgumentException("WebSecurityManager property cannot be null."); } setSecurityManager(webSecurityManager); if (resolver != null) { setFilterChainResolver(resolver); } } @Override protected ServletResponse wrapServletResponse(HttpServletResponse orig, ShiroHttpServletRequest request) { return new MyShiroHttpServletResponse(orig, getServletContext(), request); } } }
在shiro相关配置里替换成自己的MyShiroFilterFactoryBean(嗯,我是shiro和spring组合用的)
<bean id="shiroFilter" class="com.rudong.outsource.hulu.util.shiro.MyShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <!-- override these for application-specific URLs if you like:--> <property name="loginUrl" value="/loginform"/> <property name="successUrl" value="/"/> <property name="unauthorizedUrl" value="/unauthed"/> <!-- ..... --> </bean>
发表评论
-
ai文件到swf文件
2019-05-28 23:03 740朋友有个需求,把 ai 文件里的图片 替换 一个 swf 里图 ... -
空格导致spring boot自动配置类找不到
2018-04-08 11:06 647最近在做基于spring boot的复用模块开发。 (版本 1 ... -
maven mirror 设置错导致无法访问私有库
2018-04-04 12:35 842最近为了提高开发效率,整理了一些spring boot的自注册 ... -
jquery 1.11.0 post 在ie8 上不工作
2017-10-21 13:52 660帮朋友看一个问题 $.post在ie8 下不工作, 查了半天 ... -
Java 获取一个机器的本地地址
2017-03-27 10:18 857public class IpDetector { ... -
mongodb 的 inplace update
2016-12-20 15:05 854嵌套对象为 hash对象时: db.getCollectio ... -
jackson反序列化deserialize范型
2016-11-01 09:43 1141最近写调用restful接口的程序,需要反序列化json。用了 ... -
配置Mac OS 下UI程序环境变量的方法
2016-10-20 19:51 795找了半天,还是stackoverflow 靠谱 http:/ ... -
2 spring webapplicationinitializers detected on classpath
2016-10-18 14:31 6663最近在学用 spring boot 做项目,碰到一个问题,to ... -
网文阅读 杂谈
2016-09-03 02:44 469最近才看到王银的《编程的宗派》 文章后面有不少评论表示膜拜的 ... -
使用AOP把spring mvc controller方法的参数输出到日志
2015-11-18 16:40 6730使用AOP把spring mvc controller方法的参 ... -
命令行装android idk
2015-05-22 17:16 923先列出sdk 和相应 编号(这里用的是国内代理,现在有时候可以 ... -
springmvc的messageConvert是按照method的参数去启动的
2015-04-28 16:39 922最近在研究怎么在springmvc中集成使用protobuf。 ... -
用type属性避免点击button标签元素导致form提交
2015-01-19 15:52 488如果在form里使用 <button> 标签 会导 ... -
Intellij UI designer 经验x1
2014-09-09 14:36 786使用Intellij的UI designer 创建了一个for ... -
AIX 程序引用库时出ld: 0706-006的一种情况的解决
2014-03-31 14:35 2271公司的产品涉及到AIX 在CI集成时,一个模块B怎么也连不上另 ... -
移动jar到指定目录,原地建符号链接的bash指令
2014-03-10 11:21 773find . -name "*.jar" ... -
java7,jsp的el表达式使用interface无法被解析问题
2014-03-05 10:01 818使用的jdk是oracle JDK 1.7.0_51 tomc ... -
解决locale: Cannot set LC_CTYPE
2013-11-28 18:10 2120执行 sudo /usr/share/locales/inst ... -
Linux下tar包中长文件名在HP unix下丢失问题
2013-11-28 14:07 2628公司产品有个组件需要在HP unix下编译。 用了CI做集成 ...
相关推荐
在实现URL权限控制时,Shiro通过定义一系列的拦截器(Interceptors)来过滤请求。这些拦截器可以基于URL路径或特定的HTTP方法(如GET、POST等)来决定是否允许用户访问。Shiro的Web模块提供了一个名为`...
本博客主要关注的是如何利用Shiro进行基于URL的权限管理,这对于构建一个用户友好且安全的Web系统至关重要。 **Shiro基础** 1. **身份验证(Authentication)**:这是确认用户身份的过程,通常涉及用户输入用户名...
本demo为Spring boot整合shiro,以mybatis plus做dao层交互数据,实现了读取数据库用户数据实现用户登录,权限认证,读取数据库中用户对应的url请求,实现请求的过滤。自定义了relam和过滤器来实现这些功能
shiro登录验证实例,下载包虽然是web_exception_project.zip,但是确实是shiro登录验证实例,请放心下载,另外,实例详情请访问博主博客:http://blog.csdn.net/u013142781
在"shiro控制使用跳转链接前必须登录"的场景下,Shiro通常会在用户尝试访问受保护资源时进行拦截。如果用户未登录,Shiro会将请求重定向到登录页面。实现这一功能的关键在于配置Shiro的Web过滤器。在`web.xml`中,...
"shiro登录拦截校验demo"是一个实际应用Shiro框架进行登录验证和权限拦截的示例项目。 在该demo中,我们可以学习到以下几个核心知识点: 1. **Shiro的基本概念**: - **身份验证(Authentication)**:确认用户...
SpringBoot整合Shiro后实现免密登录 1,说明一下步骤,需要在原来基础新增三个文件 2,新增CustomToken,重写UsernamePasswordToken免密登录调用方法和密码登录调用方法都在里面。 3,新增...
Java shiro登录验证实例。 shiro登录验证实例,下载包虽然是web_exception_project.zip,但是确实是shiro登录验证实例,请放心下载,另外,实例详情请访问博主博客:http://blog.csdn.net/u013142781 shiro
- **登录逻辑**:当用户提交登录信息时,程序会创建一个`UsernamePasswordToken`对象,然后调用`Subject.login(token)`。Shiro会根据配置的 Realm 进行身份验证。 - **权限控制**:一旦用户成功登录,Shiro可以通过...
shiro+cas实现单点登录 示例代码,送源码分析url:http://note.youdao.com/noteshare?id=a83380ee8fc6913162042e865689844e&sub=CD905CCCE4134A159326DC2DFC1AF268
在"shiro管理多登录入口配置,手机端登录与网页端登录"这个场景下,我们需要考虑如何为不同的登录入口(手机端和网页端)设置独立的验证流程。 首先,Shiro 的核心组件 Realm 负责与应用数据源交互,验证用户身份。...
这个"spring整合shiro登录小例子"提供了一个简化的实例,展示了如何在 Spring 框架中集成 Shiro 进行用户登录验证和权限控制。下面我们将深入探讨相关的知识点。 **1. Spring 框架** Spring 是一个广泛使用的 Java ...
在IT行业中,单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户在一个应用系统中登录后,无需再次认证即可访问其他相互信任的应用系统。Apache Shiro是一个强大且易用的Java安全框架,提供了认证...
在SpringBoot中集成Shiro,可以方便地进行用户权限的管理,包括登录验证、权限校验等功能。 **Vue.js** 是一个用于构建用户界面的渐进式框架,常用于前端开发。在这里,Vue可以用来动态渲染前端界面,根据后端返回...
实现了shiro安全登录,包括密码加密匹配和登录失败次数限制的功能
当用户提交登录信息时,控制器调用Shiro的API进行认证,如果认证成功,Shiro会自动创建Subject并登录。 5. **权限控制**:在Shiro配置中定义角色和权限,然后在页面和控制器上使用Shiro的注解或标签进行权限控制。...
《Shiro简单登录+Logback日志记录》 在现代Web开发中,权限管理和日志记录是两个不可或缺的环节。Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、会话管理和加密等功能,而Logback作为Log4j的替代...
### Shiro 获取登录状态与用户信息 在Java Web开发领域,Apache Shiro 是一个非常流行的权限管理框架。它提供了一套完整的认证、授权、加密和会话管理功能。本篇文章将详细介绍如何通过Shiro框架来获取用户的登录...