2016-06-08 38 views
1

Wir stellen unsere GWT-App auf einem Wildly 8.1.0-Server bereit und verwenden die Formularauthentifizierung für die Sicherheit. Unser Problem ist, dass unser Kunde jedes Mal, wenn er einen speziellen Charakter (æøåäëö usw.) in seinem Benutzernamen oder Passwort hat, sich nicht einloggen kann.Wildfly Form Auth schlägt bei Verwendung von Sonderzeichen fehl

Ich habe andere Leute gesehen, das gleiche Problem mit:

https://developer.jboss.org/thread/42859?tstart=0

UTF-8 encoded j_security_check username incorrectly decoded as Latin-1 in Tomcat realm

Spring security: Form login special characters

aber sie verwenden Tomcat/Apache/Frühjahr usw., so dass ich mit Probleme, eine Lösung zu finden, die für unser Setup funktioniert.

Gibt es einen Konfigurationsparameter für Wildly/Undertow, so dass wir eine UTF-8-Kodierung sicherstellen können, wenn sich unsere Benutzer anmelden?

Unsere web.xml:

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>project-security-policy</realm-name> 
    <form-login-config> 
     <form-login-page>/login.html</form-login-page> 
     <form-error-page>/error.html</form-error-page> 
    </form-login-config> 
</login-config> 

Login-Formular:

<form name="loginform" method="post" autocomplete="on" action="j_security_check" accept-charset="UTF-8 ISO-8859-1" onsubmit="return validate_login_form();"> 
    <input id="usernameInput" name="j_username" class="form-input" type="text" placeholder="Username" autofocus=""> 
    <input id="passwordInput" name="j_password" class="form-input" type="password" placeholder="Password"> 
    <input id="submitButton" type="submit" value="Login"> 
</form> 

Antwort

4

Ich habe die Lösung gefunden. In der Standalone-Datei habe ich den Parameter servlet-container im Unterstrom-Subsystem bearbeitet und das Attribut default-encoding hinzugefügt. Jetzt können meine Benutzer Sonderzeichen im Benutzernamen und im Passwort haben.

<servlet-container name="default" default-encoding="UTF-8"> 

Das gesamte Subsystem sieht wie folgt aus:

<subsystem xmlns="urn:jboss:domain:undertow:1.1"> 
    <buffer-cache name="default" /> 
    <server name="default-server"> 
     <http-listener name="default" socket-binding="http" /> 
     <host name="default-host" alias="localhost"> 
      <location name="/" handler="welcome-content" /> 
      <filter-ref name="server-header" /> 
      <filter-ref name="x-powered-by-header" /> 
     </host> 
    </server> 
    <servlet-container name="default" default-encoding="UTF-8"> 
     <jsp-config /> 
    </servlet-container> 
    <handlers> 
     <file name="welcome-content" path="${jboss.home.dir}/welcome-content" /> 
    </handlers> 
    <filters> 
     <response-header name="server-header" header-name="Server" header-value="WildFly/8" /> 
     <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1" /> 
    </filters> 
</subsystem> 
+1

Diese Lösung funktionierte für mich mit Wildfly10 – vanduc1102

+0

Kennen Sie die gleiche Effektoption in Jboss? Ich kann es in Jboss nicht finden – vanduc1102

-1

Try Wildfly mit diesem Parameter zu starten:

-Dfile.encoding = UTF-8

+0

dies nicht versuchen Haben, sondern haben eine Lösung gepostet. –