JSF JDBC - Realm - Benutzer authentifizieren

FINF_AW_Alex

Aktives Mitglied
Hallo liebe Java Leute !!

Ich habe einen JDBC Realm angelegt und der Login passiert derzeit über ein FORM was ich mir ausm internet abgekuckt hab und bestimmt jeder kennt.

HTML:
<form method="POST" action="j_security_check">
    <h:panelGrid columns="2">
      <h:outputLabel value="User Name"/>
      <input type="text" name="j_username" />
      <h:outputLabel value="Password"/>
      <input type="password" name="j_password" />
      <input type="submit" value="Login" />
    </h:panelGrid>
</form>

das Problem daran ist für mich das ich nun keinerlei modifikationen vornehmen kann...

Deshalb habe ich eine eigene Bean geschrieben die den Namen und das Password überprüft.

Allerdings müseen die Benutzer jetzt nach erfolgreicher Anmeldung beim Realm eingelogt und ggf. an eine gruppenbezogene Seite weitergeleitet werden.

Ich möchte das allerdings nicht über Servlets regeln sondern in einer Bean, kann mir da jemand helfen?


Grüße, Alex !!
 

stg

Top Contributor
Ich sehe das Problem irgendwie nicht. Nimm doch einfach dein eigenes Form und in deiner login-Methode kannst du doch machen, was du willst... ?!
 

FINF_AW_Alex

Aktives Mitglied
Ich sehe das Problem irgendwie nicht.

ja, das hatten wir beide ja jetzt schon öfters... ^^


Das Problem ist: Ich kann zwar den Benutzernamen über meine eigene Bean überprüfen aber ich weiss nicht genau wie ich den benutzer am realm anmelde...

ich habe es so versucht:

Java:
    //SQL gesteuerte Benutzerauthentifizierung
    public void findUserSQL() {

        Query query = em.createNativeQuery("SELECT benutzername,password FROM benutzer WHERE benutzername = '"
                                           + name + "' AND password = '" + passwort + "'" );

        List<Benutzer> resultList = query.getResultList();

        if(resultList.isEmpty()){
            
            System.out.println("nay");
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage ("FEHLER!", "Benutzer nicht gefunden!") );
        }
        else{
            
            System.out.println("yay");
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage( null, new FacesMessage ("ERFOLGREICH!", "Willkommen " + name + "!") );
            
            HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
            
            try {
                request.login(name, passwort);
            } 
            catch (ServletException | SecurityException ex) {
                Logger.getLogger(LoginBean.class.getName()).log(Level.SEVERE, null, ex);
            }
           
            
        }
    }

so bekomme ich aber nur exeptions... :bahnhof:
 
Zuletzt bearbeitet:

FINF_AW_Alex

Aktives Mitglied
Der StrackTrace den ich bekomme sieht dann so aus, da werd ich auch nicht schlau draus:

Code:
Information:   yay
Warnung:   WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Security Exception
Schwerwiegend:   javax.servlet.ServletException: Login failed
	at org.apache.catalina.authenticator.AuthenticatorBase.doLogin(AuthenticatorBase.java:983)
	at org.apache.catalina.authenticator.AuthenticatorBase.login(AuthenticatorBase.java:963)
	at org.apache.catalina.connector.Request.login(Request.java:2250)
	at org.apache.catalina.connector.Request.login(Request.java:2229)
	at org.apache.catalina.connector.RequestFacade.login(RequestFacade.java:1113)
	at setix.security.LoginBean.findUserSQL(LoginBean.java:67)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786)
	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
	at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46)
	at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
	at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
	at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758)
	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746)
	at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)
	at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
	at com.sun.proxy.$Proxy259.findUserSQL(Unknown Source)
	at setix.security.__EJB31_Generated__LoginBean__Intf____Bean__.findUserSQL(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:414)
	at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:127)
	at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
	at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:65)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100)
	at setix.security.LoginBean$Proxy$_$$_Weld$EnterpriseProxy$.findUserSQL(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at javax.el.ELUtil.invokeMethod(ELUtil.java:332)
	at javax.el.BeanELResolver.invoke(BeanELResolver.java:537)
	at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
	at com.sun.el.parser.AstValue.invoke(AstValue.java:283)
	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
	at java.lang.Thread.run(Thread.java:745)
 

stg

Top Contributor
Und was sind das für Exceptions?

Was mir spontan an deinem Code auffällt, ist, dass du zum einen zuerst prüfst, ob der User in der Datenbank tatsächlich existiert und erst hinterher den Login probierst. Die Passwort-Abfrage hat da noch nichts zu suchen. Du wirst auch kein gescheites Ergebnis bekommen, denn das Passwort liegt verschlüsselt iin der Datenbank. Der User gibt es aber im Klartext ein. Für die Datenbank-Abfrage müsstest du es zuerst verschlüsselt, um ein Ergebnis er erlangen. Der Login-Methode aus HttpServletRequest musst du es aber unverschlüsselt übergeben. Du verwendest aber in beiden Fällen den selben String - das kann nicht passen...

Abgesehen davon ist an deinem Code nichts auffälliges zu erkennen. Ohne die genaue Exception kann ich da sonst nichts weiter zu sagen.
 

FINF_AW_Alex

Aktives Mitglied
Das ich gerade alles in einer Methode abhandle hat einfach den Grund das ich noch am testen bin und für diesen Test habe ich auch ein benutzerkonto mit klartextpasswort in der DB hinterlegt. Im StackTrace sieht man ja am "YAY" das der Vergleich positiv war.

Später würde ich das eingegebene passwort erstmal durch den Verschlüsselungsalgorithmus laufen lassen und sie dann vergleichen.

Was meinst Du mit genaue Exception? Der Stacktrace den ich gepostet habe zeigt sie doch oder?

Code:
Schwerwiegend:   javax.servlet.ServletException: Login failed
 
Zuletzt bearbeitet:

stg

Top Contributor
OK .. .verschlüsselst du das Passwort selbst von Hand? Ansonsten würde er aufgrund der zuvor geschilderten Problematik ja gar nicht erst in else-Block springen. Wenn dem so ist, siehe oben. Andernfalls überprüfe deine realm-Konfiguration..
 

stg

Top Contributor
Was meinst Du mit genaue Exception? Der Stacktrace den ich gepostet habe zeigt sie doch oder?

Ja, als ich begonnen habe die Nachricht zu schreien, war deine Antwort noch nicht da :)

Genau wir bei meiner letzten Nachricht...

Wie auch immer: Ich weiß gerade gar nicht, ob man einen JDBC Realm so konfigurieren kann, dass er gar keine Verschlüsselung benutzt. Hab ich noch nie versucht ... wozu auch? :)
Hier würde ich wie oben schon geschrieben ansetzen. Überprüfen deine Realm-Konfiguration. Hier wird vermutlich der Fehler liegen.
 

FINF_AW_Alex

Aktives Mitglied
Hier wird vermutlich der Fehler liegen.
Denke ich nicht, hast Du denn schonmal einen login auf diese Weise vorgenommen?

Das If / Else ist auch total Wumpe und das Password muss nicht verschlüsselt sein aber ich habe es natürlich auch so versucht, wenn du Recht hättest müsste das hier ja dann auf jeden Fall klappen:

Java:
    public void loginTest(){        
            try {
                FacesContext context = FacesContext.getCurrentInstance();
                HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
                request.login("admin", "0b14d501a594442a01c6859541bcb3e8164d183d32937b851835442f69d5c94e");
            } 
            catch (ServletException | SecurityException ex) {
                Logger.getLogger(LoginBean.class.getName()).log(Level.SEVERE, null, ex);
            }
    }


Aber tut es nicht ich bekomm immer den selben ST:

Code:
Warnung:   WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Security Exception
Schwerwiegend:   javax.servlet.ServletException: Login failed
	at org.apache.catalina.authenticator.AuthenticatorBase.doLogin(AuthenticatorBase.java:983)
	at org.apache.catalina.authenticator.AuthenticatorBase.login(AuthenticatorBase.java:963)
	at org.apache.catalina.connector.Request.login(Request.java:2250)
	at org.apache.catalina.connector.Request.login(Request.java:2229)
	at org.apache.catalina.connector.RequestFacade.login(RequestFacade.java:1113)
	at javax.servlet.http.HttpServletRequestWrapper.login(HttpServletRequestWrapper.java:350)
	at setix.security.LoginBean.loginTest(LoginBean.java:84)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786)
	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
	at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46)
	at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
	at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
	at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758)
	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746)
	at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)
	at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
	at com.sun.proxy.$Proxy290.loginTest(Unknown Source)
	at setix.security.__EJB31_Generated__LoginBean__Intf____Bean__.loginTest(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:414)
	at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:127)
	at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
	at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:65)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100)
	at setix.security.LoginBean$Proxy$_$$_Weld$EnterpriseProxy$.loginTest(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at javax.el.ELUtil.invokeMethod(ELUtil.java:332)
	at javax.el.BeanELResolver.invoke(BeanELResolver.java:537)
	at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
	at com.sun.el.parser.AstValue.getValue(AstValue.java:136)
	at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
	at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
	at javax.faces.component.html.HtmlCommandButton.getOnclick(HtmlCommandButton.java:315)
	at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:2387)
	at org.primefaces.renderkit.CoreRenderer.buildDomEvent(CoreRenderer.java:236)
	at org.primefaces.component.commandbutton.CommandButtonRenderer.encodeMarkup(CommandButtonRenderer.java:66)
	at org.primefaces.component.commandbutton.CommandButtonRenderer.encodeEnd(CommandButtonRenderer.java:54)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
	at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
	at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
	at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:875)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:575)
	at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:546)
	at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:428)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:378)
	at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:516)
	at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:264)
	at com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1524)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:606)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:702)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
	at java.lang.Thread.run(Thread.java:745)
 

stg

Top Contributor
Nein, du musst das Passwort unverschlüsselt an die login-Methode aus dem HttpServletRequest übergeben, aber in der Datenbank muss es gemäß der im Realm definierten Verschlüsselungsmethode verschlüsselt vorliegen.

Und ja, ich mach das ständig :)

Hier ein lauffähiger Code-Schnipsel (gekürzt) aus einem meiner Projekte:
Java:
    public String login() {
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
        try {
            request.login(username, password);
        } catch (ServletException e) {
            log.log(Level.SEVERE, "Failed to login user!", e);
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Login failed!", null));
            return "login";
        }
        // ...
        return "/secured/index?faces-redirect=true";
    }
 
Zuletzt bearbeitet:

FINF_AW_Alex

Aktives Mitglied
** PERFEKT **

Das war die Info die ich gebraucht hab!! Danke !!

Ich hatte das nicht ganz verstanden und in dem ORACLE - Tutorial stand auch nicht wirklich was von dieser Passwort geschichte oder ich habs überlesen ^^

Das war der entscheidende Hinweis, vielen vielen Dank !! :-D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Glassfish 4 JDBC-Realm Authentifizierung Beispiel gesucht Allgemeines EE 7
R JDBC und JSP Allgemeines EE 8
T Auf GlassFish JDBC-Ressourcen zugreifen Allgemeines EE 4
T MS SQL Server, GlassFish, JDBC Allgemeines EE 2
M Apache JNDI JDBC Treiber anbinden Allgemeines EE 7
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
M Einbinden von JDBC-Treiber in Webprojekt Allgemeines EE 8
V MYSQL JDBC;java.lang.ClassNotFoundException; Problem Eclipse Allgemeines EE 3
I Sun App Server JDBC MySQL Allgemeines EE 2
ichbindiegute Performance von Entity Bean create vs. JDBC insert Allgemeines EE 11
S JDBC Mysql Connection Problem - datasource null Allgemeines EE 3
B jbosscmp-jdbc.xml Allgemeines EE 5
G Persistenz-Entscheidung (Entity Beans, Hibernate, JDBC) Allgemeines EE 12
K Anfängerfrage zu JDBC installation unter TOMCAT 5.0 Allgemeines EE 4
B Hilfe (dringend) - Wann lieber JDBC anstatt CMP? Allgemeines EE 5
C Glassfish Custom Realm (oder wie auch immer man das löst) Allgemeines EE 5
B Tomcat JNDI-Realm - LDAP mit Windows testen? Allgemeines EE 2
R Benutzer Statistiken Allgemeines EE 9
R Je nach Benutzer anderes Datenbank-Schema auswählen Allgemeines EE 4
G Benutzer verwaltung Allgemeines EE 18
P Einem eingeloggtem Benutzer Rollen dynamisch zuweisen Allgemeines EE 5
S welche benutzer sind eingeloggt Allgemeines EE 10
D Windows Benutzer Authentifizierung Allgemeines EE 11

Ähnliche Java Themen

Neue Themen


Oben