2016-07-21 14 views
0

私はこれを数日間試してみました。私はwildfly上で実行されている私のJava EEアプリケーションのフォームベースの認証を作成しようとしています。私はJAX-RSとAngularJSを使用しています。私はWildflyフォーム認証

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

を次のようにwildflyセキュリティドメインを作成し、今、私は私の認証機能のためのコードを書く問題を抱えている

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

私のweb.xmlを設定しています。クライアントに成功応答を送信する必要があります。私はこれがうまくいくと思った。あなたは、このアプリケーションが認証に使用するセキュリティドメインWildflyを伝える必要があり

@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\"}"; 
} 

誰もが、私は感謝されるの周りの溶液または仕事を提供することができます...

答えて

0

。 WEB-INFへのjboss-web.xmlの追加:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> 
<jboss-web> 
    <security-domain>java:/jaas/malison</security-domain> 
</jboss-web> 

また、あなたはかもしれない web.xmlにログイン設定を追加する必要があります。ここではHTMLの基本的な認証のための例です:ここ

<login-config> 
    <auth-method>BASIC</auth-method> 
</login-config> 

詳細:web.xmlのは、それを定義するよう、フォーム認証を行っていないことが https://dzone.com/articles/understanding-web-security

注意、、。 HTTPリクエストでloginメソッドを直接呼び出すのに対し、web.xmlでフォーム認証を設定すると、認証が成功した後、アプリケーションサーバーは自動的にログインページにリダイレクトされ、保護されたURLに戻ります。