問題タブ [spring-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - Spring - セキュリティ:ログインユーザー名とパスワードはどのように認証プロバイダーにバインドされますか?
私は春と春のセキュリティに慣れていませんが、
Bean が xml ファイルでどのように作成および参照されるかを理解しました。Spring を使用してアプリケーションにセキュリティを提供する必要があります。
web.xml にカスタム applicationContext-security.xml ファイルを含めました: contextConfigLocation
このファイルでは、次を使用して URL パターンをインターセプトしました。
内部要素。
ログイン用のフォームを今のように設定しました。ページが承認されていない場合、カスタム Login.html ページが表示されます。
今私が直面している問題について:
- ログインフォームを指定してその値を spring に渡すにはどうすればよいですか?
- 独自の authentication-provider を使用するにはどうすればよいですか?
私はこれを試しました:
ここで CustomAuthenticationProvider は AuthenticationProvider を実装します
しかし、コードはエラーをスローします: '_filterChainProxy' という名前の Bean を作成中にエラーが発生しました .... UserDetailsService が登録されていません
助けてください
gwt - 春に簡単なカスタム認証が必要です
春にカスタム認証を行う必要があります。これは、ユーザーから提供されたユーザー名とパスワードを取得し、それをいくつかの値と比較し、それに基づいて認証する単純なクラスである必要があります。
GWTで作成されたシステムを使用しています。ログインフォームが成功すると、新しいウィンドウで別のページが開きます。
これは私がこれまでに試みたものです:ファイル:アプリケーション-コンテキストセキュリティ:
カスタムログインコード([OK]ボタンをクリックした場合):
問題:
- 不正なログイン:成功を示し、ログイン画面を含むポップアップを開きます!! (明らかにログインは成功しませんでしたが、ログイン画面はそれを検出できませんでした)
- authentication-providerに値をハードコーディングしたくないのですが、独自のクラスを提供する別の方法はありますか?私はいくつかのチュートリアルを試しましたが、無駄に、それらのすべてが、スプリングがデータベースまたは他の種類のファイルを介して比較の作業を行うことを許可していることを示しているようです、私はそれを自分で行うことはできませんか?
java - Spring Security と GWT を統合するには?
Spring Security と GWT を統合しようとしています。gwt-incubator-security も使用しています。彼らのwikiページで説明されているように、すべてを構成しました。インターセプト URL を使用してセキュリティを機能させることができましたが、注釈を使用して機能させることができません。問題が何であるかについてのアイデアはありますか?
PS 私は Spring 2.5.6、Spring Security 2.0.5、および gwt-incubator-security 1.0.1 を使用しています。有益なリンクやコメントは大歓迎です。
ここに私の設定ファイルがあります
applicationContext.xml
web.xml
spring-servlet.xml
これは、Spring Security と統合しようとした私のサンプル プロジェクトです: http://www.filedropper.com/springtest_1
java - 春のセキュリティ:アカウントがロックされている場合と有効になっていない場合の違いは何ですか
UserDetailsインターフェイスには、同じように見える2つのプロパティがあり、ロックされて有効になっています。
これらは正反対ではありませんか?
java - 3.0.0.RC1 を使用した Spring DAO の並行性の問題
Spring 3.0.0.M4 から 3.0.0.RC1 に、Spring Security 3.0.0.M2 から 3.0.0.RC1 にアップグレードした後、私のように _authenticationManager を定義する代わりに、security:authentication-manager タグを使用する必要がありました。 M4/M2で使用されていました。私はそれを定義するために最善を尽くしましたが、最終的には次のようになりました。
一度に 1 つずつ単体テストを実行すると、これはうまく機能し、ほとんどの AJAX 要求でも問題なく機能しますが、一見ランダムに、データベース セッションが作業の途中で閉じられたように見えるトランザクションで奇妙なエラーが発生します。これらのエラーを引き起こす方法は、同じクライアントからさまざまなコントローラーにさまざまな AJAX 要求を送信するだけで、少なくともそのうちの 1 つがランダムに失敗します。次回試してみると、それはうまくいき、別のものは失敗します。
エラーは私の userDAO で最も頻繁に発生しますが、他の DAOS でもかなり頻繁に発生し、例外には少なくとも次のものが含まれます。
- 「java.sql.SQLException: ResultSet が閉じられた後、操作は許可されていません」
- "org.hibernate.impl.AbstractSessionImpl:errorIfClosed(): セッションが閉じられました!"
- 「com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2439) での java.lang.NullPointerException」
- 「java.util.LinkedHashMap$LinkedHashIterator.nextEntry での java.util.ConcurrentModificationException (不明なソース)」
- 「org.hibernate.LazyInitializationException: ローディング コレクションへの不正なアクセス」
- 等...
以前は、_authenticationManager Bean を定義していましたが、同じリクエストが魅力的に機能していました。しかし、RC1 では、それを定義することはできなくなりました。以前は次のように表示されていました。
security:authentication-manager を誤って定義したため、同じクライアントからの複数の要求に対してトランザクションを共有していませんか? 別の方法で定義する必要がありますか、それとも他のセキュリティであるBeanを定義する必要がありますか?
データベース セッションを閉じてしまうような誤解はありますか? 私の頭では、各リクエストには独自のデータベース接続とトランザクションがあります。すべてのゲッターとセッターは同期されたメソッドであるため、並行性の問題はまったくないはずです。UI が要求を行うすべての REST コントローラーは GET 要求であり、読み取り専用の作業を行います。私の知る限り、これらのリクエスト中に INSERT/UPDATE/DELETE は 1 回も実行されません。これを確認するためにデータベース ログを調べました。
これらの競合状態を回避する方法についてのご提案をお待ちしております。
乾杯
ニック
PS、問題が security:authentication-manager にあることをより具体的にするように質問を更新しました(または、それが素晴らしいものである可能性があるというヒントがあれば、私には思えます) m 3.0.0.RC1 以降、自分の _authenticationManager の代わりに使用することを余儀なくされました
PPS、_authenticationManager を定義できなくなったことを理解させてくれたスレッドは次のとおりです: SpringSource フォーラムの投稿
java - Spring セキュリティと Struts 2
@Secured({"ROLE_ADMIN"})
execute メソッドを保護するためのstruts2 アクションがあります。execute メソッドでは、メッセージをアクションのメンバー変数に割り当て、SUCCESS を返し、jsp ページに到達します。ページで、actions メンバー変数を取得します<sproperty>
。
問題は、保護された注釈が存在する場合、jsp はメンバー変数に対して何も表示しませんが、@Secured
削除するとすべてが適切に動作し、メンバー変数に設定されたメッセージを表示することです。
実際のセキュリティは正常に機能しているように見えますが、アノテーションを介して有効にすると、メンバー変数 (またはアクションのインスタンス) が値スタックに到達しません。
エラーメッセージが表示されません。
security - 春のセキュリティはWindowsライブIDをサポートしていますか?
ライブIDの詳細については、 https ://accountservices.passport.net/ppnetworkhome.srfを参照してください。
spring-security-2.0.5でjarファイルを確認しました。
- acl(私はそれが何であるかを知らない)
- cas(二度とわからない)
- NtLm
- オープンID
Windows Live IDをサポートしていますか/それをサポートするSpringの拡張機能はありますか?
java - OpenID で Spring Security を使用する場合の AccessControlException
Google App Engine で OpenID を使用して Spring Security を実装しようとしましたが、RequestURI /j_spring_openid_security_chec に対して「java.security.AccessControlException: アクセスが拒否されました」というメッセージが表示されます
VM 引数として「-D--enable_all_permissions=true」を使用すると、正常に動作します。
何か案は?
ありがとう、ラルフ
java - Web アプリでユーザー制約をモデル化する際のベスト プラクティスは?
Acegi (Spring) セキュリティを使用して、ロール ベースのアクセス制御を備えた Web アプリケーションを構築しています。したがって、ロールを持つさまざまなユーザーがいます: ROLE_ADMIN
、ROLE_USER
など。
ただし、さまざまなユーザー制約を実装する必要があります。
例を考えてみましょう:
ユーザーがオンラインで映画を視聴できるサイトがあるとします。と の役割
ROLE_STANDARD_USER
を持つユーザーがいますROLE_VIP_USER
。標準ユーザーは週に 3 本の映画を視聴でき、VIP ユーザーは週に 10 本の映画を視聴でき、その他の特典もいくつかあります。また、標準ユーザー グループには、1 週間に 2 本の映画を追加で提供したいユーザーが 1 人います。許可される動画の数は変更される場合があります。
また、映画にはさまざまなカテゴリがあります。ファンタジー、コメディ、クラシック、新しい映画などです。役割に関係なく、一部のユーザーが特定のカテゴリにのみアクセスできるようにしたいと考えています。カテゴリは動的に作成および削除できます。
このようなタイプのユーザー制約を実装するための標準的な方法はありますか?
Spring Security のロールとパーミッションを使用して実行できますか?
または、ルール ベースのエンジンをアプリに追加することを検討する必要がありますか?
ありがとうございました。
編集:
上記の例は架空のものです。私のプロジェクトは、学生にさまざまなネットワーク (およびその他の) 機器へのリモート アクセスを許可することに関係しています。ただし、ユーザー制約の種類は同じである可能性があります。
残念ながら、ユーザー アクセスと制約のモデルは完全ではなく、安定していません。近い将来、ユーザーにさまざまな追加の制約を実装するように言われるかもしれませんが、それは現在知られていません。
したがって、将来的に新しいユーザー制約の追加または変更が容易になり、内部モデルやデータベース構造の大幅なオーバーホールを必要としないパスを選択したいと思います。それができれば。
編集 2
現在、基本的なユーザー制約はハードコーディングされています (プロトタイピング システムの残り物)。最初に何らかのパラメーター化されたビジネス サービス オブジェクトにリファクタリングしてから、そこからどこへ行くことができるかを考えてみようと思います。また、Spring Security Authorization Decision Manager の使用も検討します。
すべての提案に感謝します!
spring - Springでセッションオブジェクトを取得するにはどうすればよいですか?
私はSpringとSpringのセキュリティに比較的慣れていません。
Spring セキュリティを使用してサーバー側でユーザーを認証する必要があるプログラムを作成しようとしていましたが、
私は次のことを思いつきました:
私のユースケースは、ユーザーが認証されたときに、次のような属性を配置する必要があるということです:
myUserObject は、サーバー コード全体で複数のユーザー リクエストにアクセスできるクラスのオブジェクトです。