0

コンテナー管理の認証と許可を使用して JSF Web アプリケーションを作成しました。セキュリティ制約、セキュリティ ロール、および FORM ログイン構成を定義しました。これらすべてのパラメーターをどのように定義したかについて、以下のコードを提供しました。すべて正常に動作します。ユーザーが「保護された」Web ページにアクセスしようとすると、ログインが求められ、成功した場合はアクセスが許可され、失敗した場合はアクセスが拒否されます。パスワードは平文で保存されるため、ユーザーが平文のパスワードを入力しても、コンテナ管理の認証を使用したログインは正常に機能します。

ご存知のように、FORM 認証方式を使用してユーザーが入力した平文のパスワードにアクセス/変更/作業することはできません。しかし、保存する前にパスワードをハッシュ+ソルトしたいのですが、ユーザーがプレーンテキストを入力し、データベースにハッシュ+ソルトされたパスワードが含まれるため、ログインが機能しません。コンテナー管理の認証および承認機能を保持し、ハッシュ + ソルト パスワードを保持する方法はありますか? FORM 認証ではユーザーが入力したパスワードを使用できないため、データベースに保存されているパスワードと比較する前に、ハッシュとソルトを行うことはできません。読める本やブログがあれば教えてください。私はウェブ全体を徹底的に調べましたが、理解できる答えが見つかりませんでした.

<security-constraint>
<web-resource-collection>
<web-resource-name>Administrator Area</web-resource-name>
<url-pattern>/faces/administrator/*</url-pattern>
<url-pattern>/administrator/*</url-pattern>    
</web-resource-collection>
<auth-constraint>
<role-name>ADMINISTRATOR</role-name>           
</auth-constraint>
</security-constraint>

<security-role>
<role-name>ADMINISTRATOR</role-name>   
</security-role>

ログイン構成は次のとおりです。

<login-config>
<auth-method>FORM</auth-method>
<realm-name>DataSourceRealm</realm-name>     
<form-login-config>
<form-login-page>/faces/login.xhtml</form-login-page>
<form-error-page>/faces/login.xhtml</form-error-page>      
</form-login-config>   
</login-config>

ログインページは以下の通りです。

<form id="log_in_form" method="post" action="j_security_check">
User name: <input type="text" name="j_username"/>
Password:  <input type="password" name="j_password"/>
<input type="submit" value="Login"/>    
</form>
4

0 に答える 0