[英]Using spring core functionalities in tomcat based jersey application
[英]Can not access cookies in spring jersey based application
我正在開發Spring Security實施模塊,我需要設置和獲取一些Cookie。 我嘗試使用( javax.servlet.http.Cookie
)和( javax.ws.rs.core.NewCookie
)創建cookie都可以很好地設置cookie,我可以在瀏覽器中看到cookie,但是當我嘗試訪問它們,它的確只給我JSESSIONID,我也需要訪問其他cookie。
這就是我設置Cookie的方式,並且通過兩種方式,我都會在瀏覽器中成功保存Cookie:
Cookie cookieOne = new Cookie("SERVLETCOOKIE", "TESTING COOKIES");
NewCookie cookieTwo = new NewCookie("WSRSCOOKIE", "TESTING COOKIES");
當我嘗試訪問cookie時,我嘗試了如下所示的@Autowired和@Context,但是我只能獲取JSESSIONID cookie。
@Autowired HttpServletRequest request;
and
@Context HttpServletRequest request;
我正在嘗試訪問以下cookie:
Cookie[] cookieList = request.getCookies();
if(cookieList !=null && cookieList.length >0){
for(int i=0;i<cookieList.length;i++){
Cookie cookie = cookieList[i];
if(cookie.getName().equals("SERVLETCOOKIE")){
String value1 = cookie.getValue();
logger.info("cookie found. value ="+value1 );
}
if(cookie.getName().equals("WSRSCOOKIE")){
String value2 = cookie.getValue();
logger.info("cookie found. value ="+value2 );
}
}
}
如果有人幫助我指出我可以獲取所有其他cookie的方式,那就太好了。
這個問題已經有幾年了。 但是今天我有一個類似的問題。 解決方案是:如果您使用的是Apache http連接器,則似乎不支持jersey cookie api。 嘗試通過Apache api獲取cookie:
public static Cookie getCookie(final ClientRequestContext clientRequestContext, final String key){
final CookieStore cookieStore = ApacheConnectorProvider.getCookieStore(clientRequestContext.getClient());
return cookieStore.getCookies().stream().filter(c->c.getName().equals(key)).collect(CollectorUtil.singletonOrNullCollector());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.