0

我对 Java Web 服务器和 Web 应用程序非常陌生。我们有一个非常古老的基于 Appfuse 框架的应用程序,在 Tomcat 5 上运行良好。Appfuse 是一个基于 sprint 的框架,带有 hubernet 和其他一些东西。

我需要将其转移到 JBOSS EAP 6.1。最初我在独立模式下测试

认为我已经完成 1. jboss-web.xml 创建 2. oracle 数据库模块创建并在standalone.xml 中添加数据库连接 3. 安装演示应用程序以测试日志记录和身份验证系统。

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

首先我的登录页面不工作对于登录我们有基于表单的身份验证。它用于进入 servlet 页面并用于检查数据库和 LDAP 之类的一些内容,最后用于更新数据库并用于将页面重定向为 j_security_check?j_username=user&j_password=09d841bf7ab817bf248133610fc2c13b346690aa&j_uri=

我要做的检查是我使用 DatabaseServerLoginModule 创建了一个登录模块,并从数据库验证还创建了一个演示应用程序来检查这是否有效,并且在演示应用程序中一切都很好。

即使我禁用我的登录 servlet 和登录过滤器并使用为演示应用程序创建的简单登录 jsp 页面,我也可以登录并在再次中断之前做一些事情。

我得到的错误如下

16:17:12,170 TRACE [org.jboss.security] (http-localhost/127.0.0.1:8080-3) PBOX000263:执行查询从用户那里选择密码,其中 ad_username=? 使用用户名 pealison 16:17:12,173 DEBUG [org.jboss.security] (http-localhost/127.0.0.1:8080-3) PBOX000283:用户名 pealison 16:17:12,173 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: Password invalid/Password required at org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:284) [picketbox-4.0.17.Final-redhat-1.jar :4.0.17.Final-redhat-1] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25] 在 sun。

<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>

我现在已经看这个东西一个多星期了,我快疯了,需要帮助。

4

1 回答 1

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 斗争。

于 2013-09-30T00:12:45.420 回答