2012-01-11 2 views
0

Я ищу помощь с чем-то вроде этого:Как получить файл cookie с внешнего сайта?

У меня есть сайт A, на котором я устанавливаю Cookie.

В этом же браузере O открыт сайт B и я пытаюсь подключиться с сайта B на сайт А, используя код:

String responseSession = "";

 try { 

    URL url = new URL(urlSCS + "session"); 
    InputStream response = url.openStream(); 
    BufferedReader reader = new BufferedReader(new 
    InputStreamReader(response, "UTF-8")); 


    for(String line; (line = reader.readLine()) != null;){ 
    responseSession += line; 
    } 

    }catch(Exception e){ 
    e.printStackTrace(); 
    } 

    return responseSession; 

, чтобы получить Cookie с сайта А.

Проблема в том, что когда я открываю сайт A с Cookie, cookie отображается правильно, но когда я пытаюсь получить файл cookie на веб-сайте B, я получаю ошибку:

SEVERE: Servlet.service() for servlet appServlet threw exception 
java.lang.NullPointerException 
    at com.esb.scs.SessionController.session(SessionController.java:81) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:680) 
+0

Другое дело - не оставляйте вопрос один и тот же вопрос снова и снова. Это уже три раза. По крайней мере, закройте свои старые вопросы. Вы делаете беспорядок. –

ответ

3

Куки-файлы не могут использоваться на таких сайтах.

Когда вы устанавливаете файл cookie, это договор между вашим браузером и веб-сайтом A. Когда ваш браузер подключается к веб-сайту B, он не может получить доступ к файлу cookie для веб-сайта A, поскольку файл cookie находится в вашем браузере. Вы не можете передать этот файл cookie на веб-сайт B, чтобы он мог использовать его на веб-сайте A. Это делается по соображениям безопасности и не может быть обработано.

Для передачи информации с сайта A на веб-сайт B вы должны использовать форму POST-операции с сайта A на веб-сайт B и кодировать данные, необходимые в сообщении. Затем веб-сайт B может прочитать эту информацию из операции POST, вместо того, чтобы пытаться получить ее из файла cookie на веб-сайте A.

+0

Мне нужно получить Cookie, потому что я хочу создать что-то вроде единого входа. Я не могу получить сеанс, и я пытаюсь установить аутентификацию пользователя, используя Cookies. – Ilkar

+0

Вы должны передать информацию аутентификации пользователя в POST-операции с веб-сайта A на веб-сайт B, а затем пройти аутентификацию. –