Реализация аутентификации в веб-приложении - PullRequest
0 голосов
/ 22 января 2011

Я хочу использовать приложение auth для своего веб-приложения, чтобы пропустить процесс регистрации для пользователя.Я использую http://code.google.com/p/socialauth/ библиотеку Java для реализации аутентификации. Я столкнулся со следующей проблемой

1. Я создал секретный ключ с таким поставщиком аутентификации, как twitter.но у меня возникают проблемы при локальном запуске этого приложения в моей системе, так как я указываю адрес моего сайта, необходимый для генерации секретного ключа.

2. Я не могу настроить файл хоста так, чтобы он занималСвойства мой адрес, который я дал при генерации секретного ключа.

Вот фрагмент кода, выполняемый.

package com.auth.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.RequestUtils;
import org.brickred.socialauth.AuthProvider;
import org.brickred.socialauth.AuthProviderFactory;

import com.auth.form.AuthForm;

public class SocialAuthenticationAction extends Action {

        final Log LOG = LogFactory.getLog(SocialAuthenticationAction.class);

        @Override
        public ActionForward execute(final ActionMapping mapping,
                        final ActionForm form, final HttpServletRequest request,
                        final HttpServletResponse response) throws Exception {

                AuthForm authForm = (AuthForm) form;
                String id = authForm.getId();
                System.out.println("in authentieavtaonsdfsaf");
                AuthProvider provider = AuthProviderFactory.getInstance(id);
                String returnToUrl = RequestUtils.absoluteURL(request,"/socialAuthSuccessAction.do").toString();
                authForm.setProvider(provider);
                String url = provider.getLoginRedirectURL(returnToUrl);
                LOG.info("Redirecting to: " + url);
                if (url != null) {
                        ActionForward fwd = new ActionForward("openAuthUrl", url, true);
                        return fwd;
                }
                return mapping.findForward("failure");
        }
}

Здесь в строке номер 23 это исключение нулевого указателя, говорящее о том, что провайдервозвращается как ноль

ОШИБКА MSG ::

23 января 2011 г. 12:26:23 org.apache.catalina.core.StandardWrapperValve вызывает SEVERE: Servlet.service ()для действия сервлета выдало исключение java.lang.NullPointerException в java.util.Properties $ LineReader.readLine (неизвестный источник) в java.util.Properties.load0 (неизвестный источник) в java.util.Properties.load (неизвестный источник) в организации.brickred.socialauth.AuthProviderFactory.getInstance (AuthProviderFactory.java:72) в com.auth.actions.SocialAuthenticationAction.execute (SocialAuthenticationAction.java:31)в org.apache.struts.action.RequestProcessor.processActionPerform (RequestProcessor.java:419) в org.apache.struts.action.RequestProcessor.process (RequestProcessor.java:224) в org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) в org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:414) в javax.servlet.http.HttpServlet.service (HttpServlet.java:707) в javax.servlet.http.HttpServlet.service (HttpServlet.java:820) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290) в org.apache.catalina.core..apache.catalina.core...java: 127) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) в org.apache.catalin.a.core.StandardEngineValve.invoke (StandardEngineValve.java:109) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) в org.apache.coyote.http11.Http11Processor.Pro857) в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588) в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:48g) в java.Thread.run (неизвестный источник)

1 Ответ

1 голос
/ 24 января 2011

AuthProvider provider = AuthProviderFactory.getInstance(id); выбрасывает NPE, потому что должен быть загружен файл свойств, который не существует: java.util.Properties.load(Unknown Source)

Но я не знаю, какой из них отсутствует.Я уверен, что вы должны включить какой-нибудь файл свойств.

edit http://code.google.com/p/socialauth/wiki/StrutsSample В этом примере проекта вы можете увидеть файл с именем oauth_consumer.properties.файл свойств отсутствует?

...