問題タブ [pre-authentication]
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.
java - 未承認のリクエストを許可する PreAuthenticationFilter を使用した Spring Security AnonymousAuthFilter
私のSpring MVC Webアプリには、かなり単純化されたSpring Security構成があります。事前認証フィルターを介して認証されるリモート Web アプリケーションから REST 要求を受信しています。単純にリクエスト内のヘッダーを探し、存在する場合は、その文字列値 (ユーザー名) を認証オブジェクトとして返します。これは正常に機能し、リクエストが来ると、ユーザーは認証されます。
何らかの理由で、パターン ベースのセキュリティ antMatcher またはコントローラー メソッド アノテーション付きセキュリティを強制しようとすると、クライアントで CORS エラーが発生します。このクロスドメイン環境で実際のリクエストを実行できるようにするには、アクセスを完全に開いたままにしておく必要があります。
私の問題は、しばらくすると、セッションが期限切れになったように見えることです。ユーザーがコントローラーの 1 つをヒットし、プリンシパル オブジェクトからユーザー名を取得しようとすると、プリンシパルが null であるため、NullPointerException が発生します。有効期限が切れると、AnonymousAuthFilter が作動し、ユーザーが匿名として接続できるようになります。
私は完全にステートレスな認証セッションを望んでいないと仮定しています.Websocketのセッションも使用しているため、メッセージングテンプレートを使用して「convertAndSendToUser」を使用する場合、ユーザー名を提供する必要があり、Springはウェブソケットセッション。ただし、着信リクエストにプリンシパルが割り当てられていないかどうかをセキュリティチェーンに認識させ、PreAuthFilter を介してリクエストを強制的に戻し、セッションを再確立したいと考えています。
これは可能ですか?
以下は、セキュリティ構成ファイルの configure メソッドの概要です。
更新:だから私は http オブジェクトでこのメソッドについて学びました:
ただし、それを使用すると、すべての CORS リクエストが再び失敗します。問題は、特にプリフライト OPTIONS リクエストにあると思います。これは認証できません。匿名でアクセスできる必要があります。したがって、クロスドメイン認証から必要な動作を得るには、匿名フィルターを無効にする必要があると思いますが、そうすると、クロスドメイン要求を実行できるという重要なテナントの 1 つが壊れます。うーん。OPTIONS以外のすべてのリクエストで匿名を無効にする方法を知っている人はいますか?
spring-mvc - SpringSecurity が SecurityContext を HttpSession に配置しないのはなぜですか?
私の企業イントラネット アプリケーションは、事前認証シナリオを使用しています。SpringSecurity フィルター チェーンの前に 2 つのフィルターが挿入されています。1つ目は株式会社が提供するフィルターです。すべてのログイン、パスワードなどを処理し、ユーザーを認識すると、Cookie のプリンシパルに認証データを入れます。2 番目はこれをすべて変換し、UserDetails オブジェクトと認証トークンを作成して SecurityContextHolder に配置します。
私のログは、これが起こっていることを確認しています:
数ミリ秒後、Spring Security フィルター チェーンが入ってきて、次のことを行います。
基本的に、HttpSessionSecurityContextRespository
は (フィルタ チェーンの一部) によって呼び出されSecurityContextPersistenceFilter
、SESSION でセキュリティ コンテキストをチェックしますが、セッションでセキュリティ コンテキストが見つからず、SecurityContextHolder に配置したばかりのコンテキストを新しい空のコンテキストに置き換え、認証が行われます。数行下の失敗。
Spring のドキュメントHttpSessionSecurityContextRespository
では .
代わりに、Spring Security Filter チェーンの後に 2 番目のフィルターを挿入してみることができるかもしれないと考えましたが、それは役に立ちませんでした。FilterSecurityInterceptor (チェーンの 11 番目のアイテム) は、私の 2 番目のフィルターがチェーンの前にあったときと同じように、私の認証を拒否しました。
セッションで SecurityContext を保存するのは何ですか? また、設定したばかりのセキュリティ コンテキストを一掃する際に SecurityContextPersistenceFilter の動作を無効にするにはどうすればよいですか?
spring - Spring Security の @PreAuthorize アノテーションが機能しない。.xml ファイルの設定が間違っている可能性があります
AngularJS で Spring Security (Spring Boot アプリ) を使用しており、ユーザーに付与された権限に基づいて特定のマッピングへのアクセスを許可/拒否しようとしています。
ユーザー.java
また、ユーザーデータにデータベースからのデータを入力するUserDetailsService
(メソッド)の独自の実装があります。loadUserByUsername(String username)
前述のマッピングは次のとおりです。
ユーザーが権限 "10001" を持っているが権限 "00000" を持っていない場合、へのアクセス/yes
は許可されるべきですが、へのアクセスは許可される/no
べきではありません。残念ながら、両方のパスが許可されています。
ここで述べたように、私はspring-security-config
mavenの依存関係を持っています。
私のWEB-INF/web.xml
および WEB-INF/security.xml
要約すると、 UserDetailsService の実装は機能します (ユーザーの資格情報でログインでき、ロガーは許可された権限を出力するので、それらがそこにあることがわかります)、実際にはアクセスできないはずの場合でも、ユーザーはパスyes
とパスの両方にアクセスできます。彼/彼女は権限(許可)「00000」を持っていません。/no
/no
xml 構成が正しくないか、まったく読み取られていない可能性があります。
御時間ありがとうございます
更新M. Deinum がコメントで述べたように、Spring Boot は web.xml および security.xml ファイルを無視します。SecurityConfiguration
解決策は、 which extendsを変更WebSecurityConfigurerAdapter
し、対応する権限を持つ対応する antMatchers を追加することでした。
例:
java - spring security : mysql 認証を行う
Spring Security に問題があります。
私はmysqlデータチェックで認証しようとしています。AngularJs、Spring Boot、Spring Security を使用しています。
$http.post(...) によって呼び出される webservice rest があります。アプリを起動し、Chrome プラグイン "Advanced Rest Client" > " http://localhost:8080/check-login " を使用して Web サービスをテストすると、動作し、コード 200:OK を受け取りました。
しかし、同じ URL を使用して Chrome 経由で Web サービスにアクセスしたい場合。認証用の開口部があるウィンドウ。Spring Securityによる事前認証だと思います。しかし、無効にする方法がわかりません。
ブラウザでWebサービスにアクセスしたいときに、「http://localhost:8080/check-login 401 unauthaurized」と表示されたため、これは問題です
編集:これは私のコードです:
HTML :
JS:
私のJava REST:
私の Java Spring Boot とセキュリティ構成:
最後に、UserDetailsService に関する私の Java
アイデアはありますか?ありがとう
spring - シングル サインオンの事前認証フィルター (Apache + Tomcat + SpringSecurity) の後に既定のページにヒットしない
Tomcat にデプロイされた Spring Web アプリケーションが 1 つあり、Spring Security を使用して認証と承認を行っています。私の新しい要件は、Tomcat への apache http リクエストを介して SSO を使用することです。
事前認証フィルターを使用してこれを機能させ、LDAP サーバー (MS AD) を介して承認を取得しました。問題は、デフォルトのページが自動的に開かれないことです。http://localhost/postLogin.spのように URl を入力すると機能します。ここにsecurity.xmlがあります
ssoPreAuthenticationFilter を事前認証フィルターとして使用しているため、 をコメントアウトします。しかし、このデフォルトページ「postLogin.sp」をどこに設定できますか。authentication-success-handler-ref は の一部であるため、ここでは役に立ちません。
以下のように構成されたウェルカムファイルリストがあります
だから助けてください。