2014-10-03 3 views
0

특정 쿠키가 언제 설정되는지 알아 내려고하고 새로운 값을 기반으로 무언가를 업데이트하려고합니다. 내 자신의 쿠키 정책을 구현하여이 작업을 시도하고있다쿠키를 거부하는 Java CookiePolicy ACCEPT_ORIGINAL_SERVER

내 문제는 HttpCookie.domainMatches 메서드 내에서 처리됩니다.

CookiPolicy.ACCEPT_ORIGINAL_SERVER 정책을 사용하면 여러 쿠키가 거부됩니다.

쿠키의 도메인은 "HostName"입니다 (예 : machineName123). 분명히 무효 도메인입니다.

도메인을 서버 측에서 명시 적으로 설정해야합니까? 예를 들어 내가의 InetAddress를 사용하여 CanonicalHostName을 얻는 경우에, 난 그냥 IP 주소를 얻을 수

...

:

CookieHandler.setDefault(new CookieManager(null, new CookiePolicy() { 

     @Override 
     public boolean shouldAccept(java.net.URI uri, final java.net.HttpCookie cookie) { 
      if(CookiePolicy.ACCEPT_ORIGINAL_SERVER.shouldAccept(uri, cookie)) { 
        //custom code here 
       } 
       System.out.println("Accepting cookie uri Host: " + uri.getHost() + " name:" + cookie.getName() + " value: " + cookie.getValue() + " domain: " + cookie.getDomain() + " path: " + cookie.getPath()); 
       System.out.println("Domain matches uri: " + HttpCookie.domainMatches(cookie.getDomain(), uri.getHost())); 
       return true; 
      } 
      System.out.println("Rejecting cookie uri Host: " + uri.getHost() + " name:" + cookie.getName() + " value: " + cookie.getValue() + " domain: " + cookie.getDomain() + " path: " + cookie.getPath()); 
      System.out.println("Domain matches uri: " + HttpCookie.domainMatches(cookie.getDomain(), uri.getHost())); 
      return false; 
     }; 
    })); 

특정 쿠키가 설정됩니다시기를 결정하는 또 다른 방법이 있나요? (여러 연결에서 발생할 수 있음) 또는 다른 방법으로 호스트 이름을 확인합니까?

감사합니다.

답변

1

당신은 당신이 미리 정의 된 쿠키 정책을 사용하는 데 필요한 모든 쿠키를 허용하도록 쿠키 정책을 원하는 경우 :

CookiePolicy.ACCEPT_ALL 

예 :

CookieManager myCustomCookieManager = new CookieManager(null, CookiePolicy.ACCEPT_ALL); 

또는

myCustomCookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); 
+0

불행히도, 모든 쿠키를 수락해야합니다. ORIGINAL_SERVER 정책을 사용하고 몇 가지 특별 규칙을 사용하여 "올바른"도메인이 아닌 컴퓨터 이름을 식별했습니다. – user1649803