我从Jboss AS7 / EAP6迁移到Wildfly8,并想在这里询问有关下载的任何提示,为什么它不像catalina那样处理请求参数。
所以,我从客户端调用url'。/client/boom/index.htm?i=1',它来到一个错误的servlet,我想得到参数i
的值:< / p>
httpServletRequest.getParameter("i");
使用EAP6,它返回1,但使用Wildfly8,它返回null。为什么?
调用链如下(假设基本身份验证):
httpServletRequest.getAttribute(“javax.servlet.error.status_code”)== 401 httpServletRequest.getAttribute(“javax.servlet.error.message”)==未经授权
这里,在error-servlet中我需要获取参数i。
其他信息。
Error-servlet以这种方式映射:
<servlet-mapping>
<servlet-name>error</servlet-name>
<url-pattern>*.error</url-pattern>
</servlet-mapping>
...
<error-page>
<error-code>401</error-code>
<location>/Error.error</location>
</error-page>
我在jboss-web.xml
中声明了一个名为'boom'的安全域<jboss-web>
<security-domain>boom</security-domain>
<disable-audit>true</disable-audit>
</jboss-web>
和standalone.xml
<subsystem xmlns="urn:jboss:domain:security:1.2">
<security-domains>
...
<security-domain name="boom" cache-type="default">
<authentication>
<login-module code="com.boom.security.BoomLoginModule" flag="required"/>
</authentication>
</security-domain>
</security-domains>
</subsystem>
Auth方法在web.xml中声明为基本。
更新。错误servlet中的属性列表在EAP6和WF8
中是不同的WF8中的属性:
javax.servlet.error.message: Unauthorized
javax.servlet.error.status_code: 401
javax.servlet.error.servlet_name: default
javax.servlet.error.request_uri: /boom-portal/client/boom/index.htm
EAP6中的属性:
javax.servlet.forward.request_uri: /boom-portal/client/boom/index.htm
javax.servlet.forward.context_path: /boom-portal
javax.servlet.forward.servlet_path: /client/boom/index.htm
javax.servlet.forward.path_info: /Error.error
javax.servlet.forward.query_string: i=1
javax.servlet.error.message:
javax.servlet.error.status_code: 401
javax.servlet.error.servlet_name: default
javax.servlet.error.request_uri: /boom-portal/client/boom/index.htm
答案 0 :(得分:0)
也许这个问题与Forwarded multipart requests may lose submitted form parameters
有关尝试通过添加此批注@MultipartConfig
来更改servlet的设置或以这种方式在web.xml
描述符中
<servlet>
<servlet-name>Servlet</servlet-name>
<servlet-class>.....</servlet-class>
<load-on-startup>0</load-on-startup>
<multipart-config/>
</servlet>
<强>更新强>
问题是身份验证,您收到状态码401:
401状态代码说明
请求需要用户身份验证。响应必须包括一个 WWW-Authenticate头字段,包含适用于的挑战 请求的资源。
检查您是如何进行身份验证的。