2016-05-19 4 views
0

私は、アプリケーションのセキュリティを設定するために、JDBCレルムフォーム認証を使用しようとしていますが、動作しません。私はページをログインしようとしているときにリロードするだけでエラーは発生しません。ログには何もありません。ここでJDBCレルムフォーム認証

は、web.xml

<error-page> 
    <error-code>403</error-code> 
    <location>/faces/views/errors/403.xhtml</location> 
</error-page> 

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>jdbcRealm</realm-name> 
    <form-login-config> 
     <form-login-page>/faces/views/account/login.xhtml</form-login-page> 
     <form-error-page>/faces/views/account/loginerror.xhtml</form-error-page> 
    </form-login-config> 
</login-config> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Admin user</web-resource-name> 
     <url-pattern>/faces/views/admin/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
    </auth-constraint> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Admin user</web-resource-name> 
     <url-pattern>/faces/views/users/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
     <role-name>guest</role-name> 
    </auth-constraint> 
</security-constraint> 

ここでは、GlassFishの-web.xmlの

<security-role-mapping> 
    <role-name>admin</role-name> 
    <group-name>admin</group-name> 
</security-role-mapping> 

<security-role-mapping> 
    <role-name>guest</role-name> 
    <group-name>guest</group-name> 
</security-role-mapping> 

フォーム

です
<form method="POST" action="j_security_check"> 
        Username: <input type="text" name="j_username" /> 
        Password: <input type="password" name="j_password" /> 


        <input type="submit" value="Login" /> 
        <input type="reset" value="Reset" /> 
       </form> 
  1. JAASコンテキスト:JDBCレルム
  2. JNDIます。jdbc/kyrspr
  3. ユーザー表:USER
  4. ユーザー名列:NAME
  5. パスワードカラム:PASSWORD
  6. グループ表:USERS_GROUP
  7. グループ名列:GROUP_NAME
  8. パスワード暗号化アルゴリズム:MD5

そしてデータベーステーブル

CREATE TABLE user (
    ADDRESS VARCHAR(255), 
    EMAIL VARCHAR(255), 
    IMAGE VARCHAR(255), 
    NAME VARCHAR(255) PRIMARY KEY NOT NULL, 
    PASSWORD VARCHAR(255), 
    RATING DOUBLE, 
    SPECIALLITY_ID BIGINT(20)); CREATE UNIQUE INDEX user_NAME_uindex ON user (NAME); 


CREATE TABLE users_group 
(
    USER_ID VARCHAR(255), 
    GROUP_NAME VARCHAR(15) NOT NULL, 
    group_id BIGINT(20) PRIMARY KEY NOT NULL, 
    CONSTRAINT users_group_user_NAME_fk FOREIGN KEY (USER_ID) REFERENCES user (NAME) 
); 
CREATE UNIQUE INDEX users_group_group_id_uindex ON users_group (group_id); 
CREATE INDEX users_group_user_NAME_fk ON users_group (USER_ID); 

答えて

0

しかし、あなたは、レルム自身を持っていますか?作成-AUTH-レルムを

$輸出$ DB_USER = my_user

$輸出$ DB_PASSWORD = my_passwordという

$ $ GLASSFISH_HOME/binに/のasadmin(GFの+ mysqlのため、この例)のような何かをしよう - 次のように入力します。-classname com.sun.enterprise.security.auth.realm.jdbc.JDBCRealm --property db-user = $ DB_USER:db-password = $ DB_PASSWORD:jaas-context = jdbcRealm:password-column = password:datasource-jndi =ダイジェストアルゴリズム=なし:ユーザー名列=ユーザー名myRealm

詳細については、「asadmin cre」を参照してください。 ate-auth-realm documentationを参照してください。

関連する問題