JBoss AS 7上的JAAS验证失败
问题描述:
我们已将我们的应用程序从Glassfish移植到JBOSS AS 7.我们使用基于JAAS表单的验证和JDBCRealm。问题是AS 7在提交表单时使用ISO-8955-1编码。我们的所有其他形式都存在这个问题,但是我们通过将servlet过滤器转换为UTF-8来解决此问题,此解决方案是推荐的解决方法https://bugzilla.redhat.com/show_bug.cgi?id=832235。JBoss AS 7上的JAAS验证失败
在基于表单的身份验证过程中,我们无法在两者之间插入过滤器,因此身份验证失败。 任何已知的解决方法?
使用的用户名:user%&; /()=?`\ * ^ÄÅÖ_:;: - +}] [{€$£@ 8ks6fje739ajf6但您可以看到它包含不正确的字符。
17:16:59,601 DEBUG [org.apache.tomcat.util.http.Cookies] (http--127.0.0.1-9443-5) Cookies: Parsing b[]: JSESSIONID=FbiZG09BOiprQfUMTmdirSrq.undefined
17:16:59,603 DEBUG [org.apache.catalina.authenticator.AuthenticatorBase] (http--127.0.0.1-9443-5) Security checking request POST /j_security_check
17:16:59,604 DEBUG [org.apache.tomcat.util.http.Parameters] (http--127.0.0.1-9443-5) Set encoding to ISO-8859-1
17:16:59,604 DEBUG [org.apache.tomcat.util.http.Parameters] (http--127.0.0.1-9443-5) Set query string encoding to ISO-8859-1
17:16:59,604 DEBUG [org.apache.tomcat.util.http.Parameters] (http--127.0.0.1-9443-5) Start processing with input [j_username=user%25%26%2F%28%29%3D%3F%60%5C%5C*%5E%C3%84%C3%85%C3%96_%3A%3B%3A+-%2B%5C%7D%5D%5B%7B%E2%82%AC%24%C2%A3%408ks6fje739ajf6&j_password=admin]
17:16:59,605 DEBUG [org.apache.catalina.authenticator.FormAuthenticator] (http--127.0.0.1-9443-5) Authenticating username 'user%&/()=?`\\*^���_:;: -+\}][{�$£@8ks6fje739ajf6'
答
最后.... 的解决方案是给Tomcat配置org.apache.catalina.authenticator.FormAuthenticator使用UTF-8。经过一番苦苦寻找如何confiure这AS 7.1.1我发现你配置它的jboss-web.xml中,像这样
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>MySecurityDomain</security-domain>
<valve>
<class-name>org.apache.catalina.authenticator.FormAuthenticator</class-name>
<param>
<param-name>characterEncoding</param-name>
<param-value>UTF-8</param-value>
</param>
</valve>
</jboss-web>
这是一个关于如何将其设置在JBOSS 7,但一个非常好的指南我们已经完成了所有这些工作。问题在于用户在他们的密码/用户名中选择了非标准字符,如å,ä,ö。你可以试试,如果这对你有用吗? – Dan
网址无效。有新链接吗? – ChristophT