当前位置: 首页 > news >正文

做视频网站的挣钱吗/域名交易平台

做视频网站的挣钱吗,域名交易平台,藁城 网站,慈溪市住房和城乡建设局网站Servlet3.0规范中的<tracking-mode>允许你定义JSESSIONID是存储在cookie中还是URL参数中。如果会话ID存储在URL中&#xff0c;那么它可能会被无意的存储 在多个地方&#xff0c;包括浏览器历史、代理服务器日志、引用日志和web日志等。暴露了会话ID使得网站被session劫持…

 Servlet3.0规范中的<tracking-mode>允许你定义JSESSIONID是存储在cookie中还是URL参数中。如果会话ID存储在URL中,那么它可能会被无意的存储

 在多个地方,包括浏览器历史、代理服务器日志、引用日志和web日志等。暴露了会话ID使得网站被session劫持攻击的几率大增。 

 

在用CAS做系统单点登录时,在成功的跳转后,链接会带上;jsessionid=xxx的情况,下面就是如何去掉jssessionid的方法: 

1.在项目的web.xml中加上下面的配置

<session-config><session-timeout>30</session-timeout><tracking-mode>COOKIE</tracking-mode> 
</session-config>

2.如果上面的方法没有解决问题,可以尝试下面的方法(html带上;jsessionid=xxx会报错,所以,要在跳转前讲;jsessionid=xxx去掉,

默认第一次访问的时候,如果session没值,就会带上;jsessionid=xxx):

public static final String cleanupUrl(final String url) {                                                                                                                                                         if (url == null) {return null;}final int jsessionPosition = url.indexOf(";jsession");if (jsessionPosition == -1) {return url;}final int questionMarkPosition = url.indexOf("?");if (questionMarkPosition < jsessionPosition) {return url.substring(0, url.indexOf(";jsession"));}return url.substring(0, jsessionPosition)+ url.substring(questionMarkPosition);}

default:
//return new ExternalRedirect(serviceResponse.getUrl());//注释源码                                                                                                                                
return new ExternalRedirect(UrlUtils.cleanupUrl(serviceResponse.getUrl()));//清除url中jsessionid 

(注意版本的不同,但是只要找到处理链接的的文件就可以,在3.5.2的版本中,只需要修改CommonUtils的文件即可)

 

/*** Licensed to Jasig under one or more contributor license* agreements. See the NOTICE file distributed with this work* for additional information regarding copyright ownership.* Jasig licenses this file to you under the Apache License,* Version 2.0 (the "License"); you may not use this file* except in compliance with the License. You may obtain a* copy of the License at:** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing,* software distributed under the License is distributed on* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY* KIND, either express or implied. See the License for the* specific language governing permissions and limitations* under the License.*/package org.jasig.cas.client.util;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jasig.cas.client.proxy.ProxyGrantingTicketStorage;
import org.jasig.cas.client.validation.ProxyList;
import org.jasig.cas.client.validation.ProxyListEditor;import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.net.URL;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.TimeZone;/*** Common utilities so that we don't need to include Commons Lang.** @author Scott Battaglia* @version $Revision: 11729 $ $Date: 2007-09-26 14:22:30 -0400 (Tue, 26 Sep*          2007) $* @since 3.0*/
public final class CommonUtils {/** Instance of Commons Logging. */private static final Log LOG = LogFactory.getLog(CommonUtils.class);/*** Constant representing the ProxyGrantingTicket IOU Request Parameter.*/private static final String PARAM_PROXY_GRANTING_TICKET_IOU = "pgtIou";/*** Constant representing the ProxyGrantingTicket Request Parameter.*/private static final String PARAM_PROXY_GRANTING_TICKET = "pgtId";private CommonUtils() {// nothing to do}public static String formatForUtcTime(final Date date) {final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));return dateFormat.format(date);}/*** Check whether the object is null or not. If it is, throw an exception and* display the message.** @param object*            the object to check.* @param message*            the message to display if the object is null.*/public static void assertNotNull(final Object object, final String message) {if (object == null) {throw new IllegalArgumentException(message);}}/*** Check whether the collection is null or empty. If it is, throw an* exception and display the message.** @param c*            the collecion to check.* @param message*            the message to display if the object is null.*/public static void assertNotEmpty(final Collection<?> c,final String message) {assertNotNull(c, message);if (c.isEmpty()) {throw new IllegalArgumentException(message);}}/*** Assert that the statement is true, otherwise throw an exception with the* provided message.** @param cond*            the codition to assert is true.* @param message*            the message to display if the condition is not true.*/public static void assertTrue(final boolean cond, final String message) {if (!cond) {throw new IllegalArgumentException(message);}}/*** Determines whether the String is null or of length 0.** @param string*            the string to check* @return true if its null or length of 0, false otherwise.*/public static boolean isEmpty(final String string) {return string == null || string.length() == 0;}/*** Determines if the String is not empty. A string is not empty if it is not* null and has a length > 0.** @param string*            the string to check* @return true if it is not empty, false otherwise.*/public static boolean isNotEmpty(final String string) {return !isEmpty(string);}/*** Determines if a String is blank or not. A String is blank if its empty or* if it only contains spaces.** @param string*            the string to check* @return true if its blank, false otherwise.*/public static boolean isBlank(final String string) {return isEmpty(string) || string.trim().length() == 0;}/*** Determines if a string is not blank. A string is not blank if it contains* at least one non-whitespace character.** @param string*            the string to check.* @return true if its not blank, false otherwise.*/public static boolean isNotBlank(final String string) {return !isBlank(string);}/*** Constructs the URL to use to redirect to the CAS server.** @param casServerLoginUrl*            the CAS Server login url.* @param serviceParameterName*            the name of the parameter that defines the service.* @param serviceUrl*            the actual service's url.* @param renew*            whether we should send renew or not.* @param gateway*            where we should send gateway or not.* @return the fully constructed redirect url.*/public static String constructRedirectUrl(final String casServerLoginUrl,final String serviceParameterName, final String serviceUrl,final boolean renew, final boolean gateway) {try {return casServerLoginUrl+ (casServerLoginUrl.indexOf("?") != -1 ? "&" : "?")+ serviceParameterName + "="+ URLEncoder.encode(serviceUrl, "UTF-8")+ (renew ? "&renew=true" : "")+ (gateway ? "&gateway=true" : "");} catch (final UnsupportedEncodingException e) {throw new RuntimeException(e);}}public static void readAndRespondToProxyReceptorRequest(final HttpServletRequest request,final HttpServletResponse response,final ProxyGrantingTicketStorage proxyGrantingTicketStorage)throws IOException {final String proxyGrantingTicketIou = request.getParameter(PARAM_PROXY_GRANTING_TICKET_IOU);final String proxyGrantingTicket = request.getParameter(PARAM_PROXY_GRANTING_TICKET);if (CommonUtils.isBlank(proxyGrantingTicket)|| CommonUtils.isBlank(proxyGrantingTicketIou)) {response.getWriter().write("");return;}if (LOG.isDebugEnabled()) {LOG.debug("Received proxyGrantingTicketId [" + proxyGrantingTicket+ "] for proxyGrantingTicketIou [" + proxyGrantingTicketIou+ "]");}proxyGrantingTicketStorage.save(proxyGrantingTicketIou,proxyGrantingTicket);if (LOG.isDebugEnabled()) {LOG.debug("Successfully saved proxyGrantingTicketId ["+ proxyGrantingTicket + "] for proxyGrantingTicketIou ["+ proxyGrantingTicketIou + "]");}response.getWriter().write("<?xml version=\"1.0\"?>");response.getWriter().write("<casClient:proxySuccess xmlns:casClient=\"http://www.yale.edu/tp/casClient\" />");}/*** Constructs a service url from the HttpServletRequest or from the given* serviceUrl. Prefers the serviceUrl provided if both a serviceUrl and a* serviceName.** @param request*            the HttpServletRequest* @param response*            the HttpServletResponse* @param service*            the configured service url (this will be used if not null)* @param serverName*            the server name to use to constuct the service url if the*            service param is empty* @param artifactParameterName*            the artifact parameter name to remove (i.e. ticket)* @param encode*            whether to encode the url or not (i.e. Jsession).* @return the service url to use.*/public static String constructServiceUrl(final HttpServletRequest request,final HttpServletResponse response, final String service,final String serverName, final String artifactParameterName,final boolean encode) {if (CommonUtils.isNotBlank(service)) {return encode ? response.encodeURL(service) : service;}final StringBuilder buffer = new StringBuilder();if (!serverName.startsWith("https://")&& !serverName.startsWith("http://")) {buffer.append(request.isSecure() ? "https://" : "http://");}buffer.append(serverName);buffer.append(request.getRequestURI());if (CommonUtils.isNotBlank(request.getQueryString())) {final int location = request.getQueryString().indexOf(artifactParameterName + "=");if (location == 0) {final String returnValue = encode ? response.encodeURL(buffer.toString()) : buffer.toString();if (LOG.isDebugEnabled()) {LOG.debug("serviceUrl generated: " + returnValue);}return cleanupUrl(returnValue);}buffer.append("?");if (location == -1) {buffer.append(request.getQueryString());} else if (location > 0) {final int actualLocation = request.getQueryString().indexOf("&" + artifactParameterName + "=");if (actualLocation == -1) {buffer.append(request.getQueryString());} else if (actualLocation > 0) {buffer.append(request.getQueryString().substring(0,actualLocation));}}}final String returnValue = encode ? response.encodeURL(buffer.toString()) : buffer.toString();if (LOG.isDebugEnabled()) {LOG.debug("serviceUrl generated: " + returnValue);}return cleanupUrl(returnValue);}/*** Safe method for retrieving a parameter from the request without* disrupting the reader UNLESS the parameter actually exists in the query* string.* <p>* Note, this does not work for POST Requests for "logoutRequest". It works* for all other CAS POST requests because the parameter is ALWAYS in the* GET request.* <p>* If we see the "logoutRequest" parameter we MUST treat it as if calling* the standard request.getParameter.** @param request*            the request to check.* @param parameter*            the parameter to look for.* @return the value of the parameter.*/public static String safeGetParameter(final HttpServletRequest request,final String parameter) {if ("POST".equals(request.getMethod())&& "logoutRequest".equals(parameter)) {LOG.debug("safeGetParameter called on a POST HttpServletRequest for LogoutRequest.  Cannot complete check safely.  Reverting to standard behavior for this Parameter");return request.getParameter(parameter);}return request.getQueryString() == null|| request.getQueryString().indexOf(parameter) == -1 ? null: request.getParameter(parameter);}/*** Contacts the remote URL and returns the response.** @param constructedUrl*            the url to contact.* @param encoding*            the encoding to use.* @return the response.*/public static String getResponseFromServer(final URL constructedUrl,final String encoding) {return getResponseFromServer(constructedUrl,HttpsURLConnection.getDefaultHostnameVerifier(), encoding);}/*** Contacts the remote URL and returns the response.** @param constructedUrl*            the url to contact.* @param hostnameVerifier*            Host name verifier to use for HTTPS connections.* @param encoding*            the encoding to use.* @return the response.*/public static String getResponseFromServer(final URL constructedUrl,final HostnameVerifier hostnameVerifier, final String encoding) {URLConnection conn = null;try {conn = constructedUrl.openConnection();if (conn instanceof HttpsURLConnection) {((HttpsURLConnection) conn).setHostnameVerifier(hostnameVerifier);}final BufferedReader in;if (CommonUtils.isEmpty(encoding)) {in = new BufferedReader(new InputStreamReader(conn.getInputStream()));} else {in = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding));}String line;final StringBuilder stringBuffer = new StringBuilder(255);while ((line = in.readLine()) != null) {stringBuffer.append(line);stringBuffer.append("\n");}return stringBuffer.toString();} catch (final Exception e) {LOG.error(e.getMessage(), e);throw new RuntimeException(e);} finally {if (conn != null && conn instanceof HttpURLConnection) {((HttpURLConnection) conn).disconnect();}}}/*** Contacts the remote URL and returns the response.** @param url*            the url to contact.* @param encoding*            the encoding to use.* @return the response.*/public static String getResponseFromServer(final String url, String encoding) {try {return getResponseFromServer(new URL(url), encoding);} catch (final MalformedURLException e) {throw new IllegalArgumentException(e);}}public static ProxyList createProxyList(final String proxies) {if (CommonUtils.isBlank(proxies)) {return new ProxyList();}final ProxyListEditor editor = new ProxyListEditor();editor.setAsText(proxies);return (ProxyList) editor.getValue();}/*** Sends the redirect message and captures the exceptions that we can't* possibly do anything with.** @param response*            the HttpServletResponse. CANNOT be NULL.* @param url*            the url to redirect to.*/public static void sendRedirect(final HttpServletResponse response,final String url) {try {response.sendRedirect(url);} catch (final Exception e) {LOG.warn(e.getMessage(), e);}}/***  cleanup jsessionid*  * @param url* @return*/public static final String cleanupUrl(final String url) {if (url == null) {return null;}final int jsessionPosition = url.indexOf(";jsessionid");if (jsessionPosition == -1) {return url;}final int questionMarkPosition = url.indexOf("?");if (questionMarkPosition < jsessionPosition) {return url.substring(0, url.indexOf(";jsessionid"));}return url.substring(0, jsessionPosition)+ url.substring(questionMarkPosition);}
}

  

  

  

 

转载于:https://www.cnblogs.com/fron/p/jssessionid-20161130.html

http://www.jmfq.cn/news/4793977.html

相关文章:

  • 做网站建设需要做哪些工作/软文营销案例
  • 如何仿做网站/百度快照查询入口
  • 如何制作自己的网站 可放广告/广告推广免费平台
  • 最好的wordpress/北京网站优化指导
  • 怎么做基金公司网站/关键词排名工具有哪些
  • 从网络营销角度做网站/seoyoon
  • 建设部网站如何下载国标规范/创建网站需要多少资金
  • 蔡文胜做的个人网站/云南百度公司
  • 专业网站定制哪家好/郑州厉害的seo顾问公司
  • 网站建设论文选题/哪个网站学seo是免费的
  • 在拼多多开网店的流程/网站优化入门免费教程
  • 网站开发文章/快手作品免费推广软件
  • 怎么做收费网站/今日头条新闻发布
  • 新浪门户网站是谁做的/今日全国疫情一览表
  • wordpress submenu/济南优化哪家好
  • 微商城页面设计/电脑系统优化工具
  • 网站建设图片居中代码/seo优化是做什么的
  • 高明网站设计服务/怎么把产品快速宣传并推广
  • 网站建设栏目/苏州百度推广公司地址
  • qq游戏做任务领铜板网站/成都网络营销公司排名
  • 软件开发属于什么专业/企业网站优化方案
  • 保定网站设计公司/推广赚佣金
  • 免费二级域名空间注册/seo深圳培训班
  • 陕西建设机械股份有限公司网站/博客是哪个软件
  • 网站做404好处/seo排名优化推广报价
  • 免费个人业务网站制作/网站seo优化外包顾问
  • 手机端企业网站怎么做/百度怎么做关键词优化
  • 网站建设模板/技能培训有哪些科目
  • 剪辑软件/seo有哪些作用
  • 乌鲁木齐+网站建设/长尾词seo排名