2013-09-23 61 views
0

我对Java Web服务器和Web应用程序非常新颖。 我们有一个非常老的基于Appfuse框架的应用程序在Tomcat 5上运行良好。 Appfuse是一个基于sprint的框架,使用hubernet和其他一些东西构建到它中。将AppFuse应用程序从Tomcat 7迁移到Jboss EAP 6.1

我需要将它转移到JBOSS EAP 6.1。 最初我在独立模式

思我已经做了 1的jboss-web.xml中创建测试 2. Oracle数据库模块创建和安装测试记录standalone.xml 3.演示应用程序添加数据库连接和认证系统。

但该应用程序无法正常工作。 我不知道什么不工作,因为我无法再调试这个东西。

要开始我的登录页面不起作用 对于登录,我们有基于表单的身份验证。用它去一个servlet页面,并用它来检查,如数据库和LDAP几件事情,最后用它来更新数据库,并使用页面重定向为j_security_check?为j_username =用户&为j_password = 09d841bf7ab817bf248133610fc2c13b346690aa & j_uri =

我做什么检查是我创建了一个包含DatabaseServerLoginModule的登录模块,并且从数据库验证也创建了一个演示应用程序来检查这是否正常工作,并且它在演示应用程序中都很好。

即使我禁用我的登录servlet和登录过滤器和我再次打破了之前使用的演示应用程序我可以登录并做几件事情创建的简单登录JSP页面。

错误我收到是如下

16:17:12170 TRACE [org.jboss.security](HTTP-本地主机/ 127.0.0.1:8080-3)PBOX000263:执行查询选择从用户那里密码ad_username =?以用户名pealison 16:17:12173 DEBUG [org.jboss.security](HTTP-本地主机/ 127.0.0.1:8080-3)PBOX000283:用户名pealison为密码 16:17:12173 TRACE [org.jboss.security ](http-localhost/127.0.0.1:8080-3)PBOX000244:开始中止方法 16:17:12,173 DEBUG [org.jboss.security](http-localhost/127.0.0.1:8080-3)PBOX000206:登录失败:javax.security.auth.login.FailedLoginException:PBOX000070:密码无效/密码所需 在org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:284)[picketbox-4.0.17.Final-红帽-1.jar:4.0.17.Final-红帽-1]在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)[rt.jar中:1.7.0_25] 在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) [rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)[rt.jar中:1.7.0_25] 在java.lang.reflect.Method.invoke(未知来源)[rt.jar中:1.7.0_25] 在javax.security。 auth.login.LoginContext.invoke(未知来源)[rt.jar中:1.7.0_25]在javax.security.auth.login.LoginContext.access $ 000(未知源) [rt.jar中:1.7.0_25] 在的javax .security.auth.login.LoginContext $ 4.run(Unknown Source)[rt.jar:1.7.0_25] at javax.security.auth.login.LoginContext $ 4.run(Unknown Source)[rt.jar:1.7.0_25 ] at java.security.AccessController.doPrivileged(Native Method)[rt.jar:1.7.0_25] at javax.security.auth.login.LoginContext.invokePriv(Unknown Source)[rt.jar:1.7.0_25] 在javax.security.auth.login.LoginContext.login(未知来源)[rt.jar:1.7.0_25] at org.jboss.security。authentication.JBossCachedAuthenticationManager.defaultLogin(JBossCachedAuthenticationManager.java:408)[picketbox-的Infinispan-4.0.17.Final-红帽-1.jar:4.0.17.Final-红帽-1]在 org.jboss.security.authentication.JBossCachedAuthenticationManager .proceedWithJaasLogin(JBossCachedAuthenticationManager.java:345)[picketbox-的Infinispan-4.0.17.Final-红帽-1.jar:4.0.17.Final-红帽-1]在 org.jboss.security.authentication.JBossCachedAuthenticationManager.authenticate( JBossCachedAuthenticationManager.java:333)[picketbox-的Infinispan-4.0.17.Final-红帽-1.jar:4.0.17.Final-红帽-1]在 org.jboss.security.authentication.JBossCachedAuthenticationManager.isValid(JBossCachedAuthenticationManager.java :146)[picketbox-infinispan-4.0.17.Final-redhat-1.jar:4.0.17.Final-redhat-1] at org.jboss.as.web.security.JBossWebRealm.authenticate(JBossWebRealm.java: 216)[jboss-as-web-7.2.0 .final-redhat-8.jar:7.2.0.Final-redhat-8] at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:280)[jbossweb-7.2.0.Final-redhat- 1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:373)[jbossweb-7.2.0.Final-redhat-1.jar:7.2 .0.Final-红帽-1]在 org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)的JBoss-AS-web的7.2.0.Final-红帽-8.jar: 7.2.0.Final-redhat-8] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final -redhat-1] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache。 catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:389)[jbossweb-7.2.0.Final-红帽-1.jar:7.2.0.Final-红帽-1]在 org.apache.catalina.core.StandardEngineValve .invoke(StandardEngineValve.java:102)[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter。 java:336)[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)[ jbossweb-7.2.0.Final-红帽-1.jar:7.2.0.Final-红帽-1]在 $ org.apache.coyote.http11.Http11Protocol Http11ConnectionHandler.process(Http11Protocol.java:653)[jbossweb-7.2 .0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:920)[jbossweb-7.2。 0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 在java.lang.Thread.run(来源不明)的rt.jar:1.7.0_25]

<filter> 
    <filter-name>loginFilter</filter-name> 
    <display-name>Login Filter</display-name> 
    <filter-class>com.mas.etcs.webapp.filter.LoginFilter</filter-class> 
    <init-param> 
    <param-name>enabled</param-name> 
    <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>loginFilter</filter-name> 
    <url-pattern>/login.jsp</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>loginFilter</filter-name> 
    <url-pattern>/logout.jsp</url-pattern> 
</filter-mapping> 

<servlet> 
    <servlet-name>login</servlet-name> 
    <display-name>Login Servlet</display-name> 
    <servlet-class>com.mas.etcs.webapp.action.LoginServlet</servlet-class> 
    <init-param> 
    <param-name>authURL</param-name> 
    <param-value>j_security_check</param-value> 
    </init-param> 
    <init-param> 
    <param-name>isSecure</param-name> 
    <param-value>false</param-value> 
    </init-param> 
    <init-param> 
    <param-name>encrypt-password</param-name> 
    <param-value>true</param-value> 
    </init-param> 
    <init-param> 
    <param-name>algorithm</param-name> 
    <param-value>SHA</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

我现在在看这件事情​​的一个多星期,我要疯了需要帮助。

+0

我的第一个错误是SHA算法。我的servlet工作正常,我的旧登录servlet使用Web表单中的用户名和密码,并在最终检查后,使用usernaem和SHA十六进制密码对j_security进行另一次重定向。结果,服务器安全模块已经使用sha encription获得了密码,然后它再次对该密码进行了一次甄别,然后检查数据库,结果密码始终为false。 – Shanewaj

回答

0

我将Oracle模块放入ee子系统后,大部分问题都解决了。

<subsystem xmlns="urn:jboss:domain:ee:1.1"> 
    <spec-descriptor-property-replacement>false 
    </spec-descriptor-property-replacement> 
    <jboss-descriptor-property-replacement>true 
    </jboss-descriptor-property-replacement> 
    <global-modules> 
     <module name="com.oracle.ojdbc" slot="main" /> 
    </global-modules> 
</subsystem> 

仍在与system.out战斗。