Eh ben ... Bu bitirdim ise çalışır JsessionId - nasıl engellenir? Bir sayfaya ilk çağrıda jsessionid = XXX? ilk sayfa jsp
ben iframe bir<iframe></iframe>
içeriği ile karşılama sayfalık index.jsp kullanan bir uygulama, bir jsf sayfası var. Ben index.jsp erişmek ben kundakçı ilk get bir çerez zaten bkz:
Set-Cookie JSESSIONID=C615DA89B6EF73F801973EA3DCD3B226; Path=/
kalıtılır.Kalıtılan jsessionid sayfa. AMA: <iframe/>
sayfasının sayfasına doğrudan eriştiğimde, jsessionId bir çerez içermeyen tüm URL'lere yeniden yazılır - ilk istekte. Daha sonra çerez kullanılır. Her şey yolunda - eğer: Güvenlik sistemi, URL yeniden yazmalarını gerçekleştirmeme izin verir.
ben index.jsp ile olduğu gibi aynı davranışı elde etmek istediğiniz JBoss 4.2.2
çalıştırmak - örneğin her zaman kurabiyeleri kullanın ve her zaman http yeniden yazmaktan kaçının.
sayesinde ben yazdım balusc cevabı [DÜZENLE]:
public class JsessionIdAvoiderFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException {
boolean allowFilterChain = redirectToAvoidJsessionId((HttpServletRequest) req, (HttpServletResponse)res);
//I'm doing this because if I execute the request completely, it will perform a pretty heavy lookup operation. No need to do it twice.
if(allowFilterChain)
chain.doFilter(req, res);
}
public static boolean redirectToAvoidJsessionId(HttpServletRequest req, HttpServletResponse res) {
HttpSession s = req.getSession();
if(s.isNew()) {
//after the redirect we don't want to redirect again.
if(!(req.isRequestedSessionIdFromCookie()&&req.isRequestedSessionIdFromURL()))
{
//yeah we have request parameters actually on that request.
String qs = req.getQueryString();
String requestURI = req.getRequestURI();
try {
res.sendRedirect(requestURI+"?"+qs);
return false;
} catch (IOException e) {
logger.error("Error sending redirect. " + e.getMessage());
}
}
}
return true;
}
}
için <tracking-mode>COOKIE</tracking-mode>
kullanabilirsiniz web.xml
<filter>
<display-name>JsessionId Filter</display-name>
<filter-name>jsessionIdAvoiderFilter</filter-name>
<filter-class>my.namespace.JsessionIdAvoiderFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>jsessionIdAvoiderFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
teşekkürler. Web sitenizde bir yerde 'hayırseverlik için bağış yapın' var mı? Pizza sipariş edebilir miyim? – Toskan
Rica ederim. Web sitem/blogumun sağ sütununda paypal bağış butonunu bulabilirsiniz. Şimdiye kadar tek yol bu. – BalusC
size kişisel bir mesaj gönderemediğim anlaşılıyor. Paypal'ı nasıl ingilizceye zorlayacağınızı öğrenmelisiniz. Bu Hollandaca biraz kafa karıştırıcı :-) "Snel doneren": -D – Toskan