1

ユーザー名/パスワードの検証のために機能するように、プロジェクトで shiro を構成しました。「filters」と「urls」は以下のとおりです。

[filters]   
authc.loginUrl = /login.jsp 
shiro.loginUrl = /login.jsp 
[urls]   
/login.jsp = anon, authc 
/index.jsp = authc 

これで、index.jsp にアクセスすると、index.jsp を更新しただけでも、login.jsp にリダイレクトされます。

このユーザーがすでにログオンしていることをキャッシュがまだ認識している場合、index.jsp を更新するときに index.jsp にとどまるようにするにはどうすればよいですか?

ちなみに、キャッシュマネージャーを設定していないので、起動すると「org.apache.shiro.realm.AuthorizingRealm - No cache or cacheManager properties have been set.」のようなエラーが表示されます。承認キャッシュを取得できません。以下のように設定しますか (shiro core と web しか使用していません)。

builtInCacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager 
securityManager.cacheManager = $builtInCacheManager 
4

1 に答える 1

1

shiro を始めたばかりですが、次のリンクが役立つはずです: http://raibledesigns.com/rd/entry/java_web_application_security_part2「結論」セクションを参照してください。最も注目すべきは、authcが現在のセッションで認証を強制する方法です(私が理解している限り、おそらくスレッドローカルを使用して現在のスレッド呼び出しに依存します)。または、例の場合のようにユーザーです。これは、あなたが既知のユーザーであることを意味するためです...これは、認証済みとは異なります(より強いステートメント)。

さらに、区別が明確でない場合: shiro 認証済みとは、ユーザー/パスを入力したことを意味し、それがユーザーでなければならないことがわかります。記憶されたユーザーがサインインしましたが、セッションの有効期限が切れていない場合は、まだログインしているため、退出して他のユーザーが座ることができます。多額の支払いやその他の安全な操作 (警察やその他の機密情報) など、そのサービス専用の資格情報を要求する場合があります。

于 2013-03-12T07:55:58.743 に答える