2016-06-08 1 views
1

Nous déployons notre application GWT sur un serveur Wildly 8.1.0 et utilisons l'authentification par formulaire pour la sécurité. Notre problème est que chaque fois que notre client a un caractère spécial (æøåäëö, etc.) dans son nom d'utilisateur ou son mot de passe, il ne peut pas se connecter.Wildfly Form Auth échoue lors de l'utilisation de caractères spéciaux

J'ai vu d'autres personnes ayant le même problème:

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

mais ils utilisent Tomcat/Apache/Spring, etc., donc je vais avoir difficulté à trouver une solution qui fonctionnerait pour notre installation.

Existe-t-il un paramètre de configuration pour Wildly/Undertow, afin que nous puissions assurer un encodage UTF-8 lorsque nos utilisateurs se connectent?

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

formulaire de connexion:

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

Répondre

4

J'ai trouvé la solution. Dans le fichier autonome, j'ai modifié le paramètre servlet-container dans le sous-système de sous-flux et ajouté l'attribut default-encoding. Maintenant, mes utilisateurs peuvent avoir des caractères spéciaux dans le nom d'utilisateur et le mot de passe.

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

Le sous-système complet ressemble à ceci:

<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

Cette solution a fonctionné pour moi avec Wildfly10 – vanduc1102

+0

Connaissez-vous la même option d'effet dans Jboss? Je ne peux pas le trouver à Jboss – vanduc1102

-1

Essayez de commencer wildfly avec ce paramètre:

-Dfile.encoding = UTF-8

+0

n'a pas essayé, mais ont affiché une solution. –