首页 > 编程知识 正文

google从服务器检索信息出错DFERH,jsessionid怎么手动修改

时间:2023-05-05 09:21:57 阅读:45811 作者:2215

1.重写几个类 1. ShiroFilterFactoryBean package com.standards.config;import org.apache.shiro.mgt.SecurityManager;import org.apache.shiro.spring.web.ShiroFilterFactoryBean;import org.apache.shiro.web.filter.mgt.FilterChainManager;import org.apache.shiro.web.filter.mgt.PathMatchingFilterChainResolver;import org.apache.shiro.web.mgt.WebSecurityManager;import org.apache.shiro.web.servlet.AbstractShiroFilter;import org.springframework.beans.factory.BeanInitializationException;/qjdfk * @Author: hekaikai * @Date: 2021/6/3 13:30 */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); }} 2. AbstractShiroFilter package com.standards.config;import org.apache.shiro.web.filter.mgt.FilterChainResolver;import org.apache.shiro.web.mgt.WebSecurityManager;import org.apache.shiro.web.servlet.AbstractShiroFilter;import org.apache.shiro.web.servlet.ShiroHttpServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletResponse;/qjdfk * @Author: hekaikai * @Date: 2021/6/3 13:30 */public 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); }} 3. ShiroHttpServletResponse package com.standards.config;import org.apache.shiro.web.servlet.ShiroHttpServletRequest;import org.apache.shiro.web.servlet.ShiroHttpServletResponse;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletResponse;/qjdfk * @Author: hekaikai * @Date: 2021/6/3 13:28 */public class MyShiroHttpServletResponse extends ShiroHttpServletResponse { public MyShiroHttpServletResponse(HttpServletResponse wrapped, 喜悦的冥王星, ShiroHttpServletRequest request) { super(wrapped, context, request); } @Override public String encodeRedirectqsdxc(bldjm){ /qjdfk 下面是ShiroHttpServletResponse冷酷的小懒猪,重写shiro的encodeRedirectqsdxc方法,把url路径里的JSESSIONID去掉 qjdfk/// if (isEncodeable(toAbsolute(url))) {// return toEncoded(url, request.getSession().getId());// } else {// return url;// } return url; } @Override protected String toEncoded(bldjm, 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); /qjdfk 下面是ShiroHttpServletResponse冷酷的小懒猪,重写shiro的toEncoded方法使其不拼接JSESSIONID qjdfk/// if (sb.length() > 0) { // session id param can't be first.// sb.append(";");// sb.append("JSESSIONID");// sb.append("=");// sb.append(sessionId);// } sb.append(anchor); sb.append(query); return (sb.toString()); }} 2.修改配置

替换之前的 ShiroFilterFactoryBean

<!--<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">--><bean id="shiroFilter" class="com.standards.config.MyShiroFilterFactoryBean"></bean>

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。