Ich habe versucht, dies für mehrere Tage auszuarbeiten. Ich versuche eine formularbasierte Authentifizierung für meine JAVA EE App zu erstellen, die auf Wildfly läuft. Ich benutze JAX-RS und AngularJS. Ich habe die Wildfly Sicherheitsdomäne erstellt alsWildfly Form Authentifizierung
<security-domain name="malison">
<authentication>
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:jboss/datasources/malisonDS"/>
<module-option name="principalsQuery" value="select password from USER where user=?"/>
<module-option name="rolesQuery" value="select position from USER where user=?"/>
</login-module>
</authentication>
</security-domain>
und konfiguriert folgt meine web.xml
<security-constraint>
<display-name>UnSecuredPages</display-name>
<web-resource-collection>
<web-resource-name>Access</web-resource-name>
<url-pattern>/api/user/*</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>Access</web-resource-name>
<url-pattern>/user.jsp</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>Access</web-resource-name>
<url-pattern>/assets/*</url-pattern>
</web-resource-collection>
</security-constraint>
<security-role>
<role-name>ADMIN</role-name>
</security-role>
Jetzt habe ich ein Problem für meine beglaubigen Funktion das Schreiben von Code. Welches sollte eine Erfolgsantwort an den Client senden. Ich dachte, das würde funktionieren.
@POST
@Path("/authenticate")
@Consumes(MediaType.APPLICATION_JSON)
public String authenticate(@Context HttpServletRequest request, JSONObject obj){
String userName = String.valueOf(obj.get("username"));
String password = String.valueOf(obj.get("password"));
try{
request.login(userName, password);
}
catch(Exception e){
e.printStackTrace();
}
return "{\"success\":true, \"msg\": \"Saved successfully\"}";
}
Kann jemand eine Lösung bieten oder Umgehen wäre ich dankbar ...