目次
質問内容
ホームページ Java Spring Securityは、残りのサービスで認証済みユーザーと未認証ユーザーのユーザー情報を取得します

Spring Securityは、残りのサービスで認証済みユーザーと未認証ユーザーのユーザー情報を取得します

Feb 08, 2024 pm 11:00 PM
spring security

Web アプリケーションを開発する場合、セキュリティは重要な考慮事項です。ユーザーデータを保護し、不正アクセスを防止するには、信頼できる認証および認可メカニズムを使用する必要があります。 Spring Security は、アプリケーションを保護するための完全なソリューション セットを提供する、強力で広く使用されているセキュリティ フレームワークです。この記事では、Spring Security で認証済みユーザーと未認証ユーザーのユーザー情報を取得する方法を説明します。 PHP エディタ Baicao では、Spring Security の機能を使用してユーザー情報を取得し、異なるサービス間でユーザー情報を共有する方法を説明します。初心者でも経験豊富な開発者でも、この記事は Spring Security に関する詳細情報を提供し、アプリケーションのセキュリティを向上させるのに役立ちます。

質問内容

Spring Rest サービスを持っており、認証済みユーザーと非認証ユーザーの両方に使用したいと考えています。ユーザーが認証されている場合は、securitycontextholder.getcontext().getauthentication()からユーザー情報を取得したいと思います。

  • 使用する場合 .antmatchers("/app/rest/question/useroperation/list/**").permitall() 以下に示すように ouath2 設定では、ユーザー情報を取得できます ユーザーは認証されていますが、認証されていないユーザーには 401 エラーが発生します。
  • ###もし私が
  • .antmatchers("/app/rest/question/useroperation/list/**").permitall() WebセキュリティでURLを無視します web.ignoring()..antmatchers("/app/rest/question/useroperation/list/**") 以下に示す securityconfiguration では、すべてのユーザーが電話をかけることができます。 サービスを利用しましたが、securitycontext からユーザー情報を取得できません。
認証済みユーザーと未認証ユーザーの URL を呼び出し、ユーザーのログイン時に securitycontext からユーザー情報を取得するように Spring セキュリティを構成するにはどうすればよいですか。

リーリー

セキュリティ構成

@configuration
@enableresourceserver
protected static class resourceserverconfiguration extends resourceserverconfigureradapter {

    @inject
    private http401unauthorizedentrypoint authenticationentrypoint;

    @inject
    private ajaxlogoutsuccesshandler ajaxlogoutsuccesshandler;

    @override
    public void configure(httpsecurity http) throws exception {
        http
                .exceptionhandling()
                .authenticationentrypoint(authenticationentrypoint)
                .and()
                .logout()
                .logouturl("/app/logout")
                .logoutsuccesshandler(ajaxlogoutsuccesshandler)
                .and()
                .csrf()
                .requirecsrfprotectionmatcher(new antpathrequestmatcher("/oauth/authorize"))
                .disable()
                .headers()
                .frameoptions().disable()
                .sessionmanagement()
                .sessioncreationpolicy(sessioncreationpolicy.stateless)
                .and()
                .authorizerequests()
                .antmatchers("/views/**").permitall()
                .antmatchers("/app/rest/authenticate").permitall()
                .antmatchers("/app/rest/register").permitall()
                .antmatchers("/app/rest/question/useroperation/list/**").permitall()
                .antmatchers("/app/rest/question/useroperation/comment/**").authenticated()
                .antmatchers("/app/rest/question/useroperation/answer/**").authenticated()
                .antmatchers("/app/rest/question/definition/**").hasanyauthority(authoritiesconstants.admin)
                .antmatchers("/app/rest/logs/**").hasanyauthority(authoritiesconstants.admin)
                .antmatchers("/app/**").authenticated()
                .antmatchers("/websocket/tracker").hasauthority(authoritiesconstants.admin)
                .antmatchers("/websocket/**").permitall()
                .antmatchers("/metrics/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/health/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/trace/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/dump/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/shutdown/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/beans/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/info/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/autoconfig/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/env/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/trace/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/api-docs/**").hasauthority(authoritiesconstants.admin)
                .antmatchers("/protected/**").authenticated();

    }

}
ログイン後にコピー

回避策

permitall() authentication オブジェクトが securitycontext に存在する必要があります。

非 OAuth ユーザーの場合、匿名アクセスを有効にすることでこれを実現できます:

リーリー

匿名アクセスでは、

securitycontext に ## がない場合に備えて、追加のフィルター anonymousauthenticationfilter がフィルター チェーンに追加され、認証情報として anonymousauthenticationtoken が設定されます。 #authenticationObject

/public/authphpcnendcphp 中国語:

経由で authuser をチェックするためのセキュリティ構成があります。 リーリー

以上がSpring Securityは、残りのサービスで認証済みユーザーと未認証ユーザーのユーザー情報を取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Spring Security 6: cors() は非推奨となり、削除対象としてマークされています Spring Security 6: cors() は非推奨となり、削除対象としてマークされています Feb 10, 2024 pm 11:45 PM

次のコードがあります: publicSecurityFilterChainsecurityFilterChain(HttpSecurityhttp)throwsException{returnhttp.httpBasic().disable().cors().and().csrf().disable().authorizeHttpRequests().requestMatchers("

Java を使用して Spring Security SAML ベースのシングル サインオン システムを開発する方法 Java を使用して Spring Security SAML ベースのシングル サインオン システムを開発する方法 Sep 22, 2023 am 08:49 AM

Java を使用して SpringSecuritySAML に基づくシングル サインオン システムを開発する方法 はじめに: インターネットの急速な発展に伴い、ますます多くのアプリケーションが開発されています。これらのアプリケーションでは、ユーザー ログインは最も一般的な機能の 1 つです。ただし、エンタープライズ レベルのアプリケーションの場合、ユーザーは複数のシステムにログインする必要があるため、ユーザーのログイン エクスペリエンスが非常に低下します。この問題を解決するために登場したのがシングルサインオンシステム(SingleSign-On、以下SSO)です。単純

GO アクセス トークン (keycloak) を認証する GO アクセス トークン (keycloak) を認証する Feb 09, 2024 am 09:30 AM

GOを使用してアクセストークンの検証を実装しようとしています。しかし、オンラインで見た例では、TOKEN_SECRET を使用して検証しているだけのようです。ただし、私は Javaspring でのプログラミングに慣れているため、TOKEN_SECRET を使用する必要はありません。 jwk-set-uri を指定するだけで、有効性 (自動セキュリティ フィルターなど) がチェックされ、oauth サーバーと通信してこの検証が行われることがわかります。 Goにはoauthサーバーにリクエストを行ってトークンが有効かどうかを確認するライブラリはありませんか? oauth サーバーの userinfo エンドポイント http://localh にリクエストを送信することで、これを手動で実行できることはわかっています。

Spring Security 権限制御フレームワークの使用ガイド Spring Security 権限制御フレームワークの使用ガイド Feb 18, 2024 pm 05:00 PM

バックエンド管理システムでは、通常、さまざまなユーザーのインターフェイスへのアクセスを制限するために、アクセス許可制御が必要です。ユーザーに特定の権限がない場合、特定のインターフェイスにアクセスできません。この記事では、waynboot-mall プロジェクトを例として、一般的なバックエンド管理システムがアクセス許可制御フレームワーク SpringSecurity を導入する方法を紹介します。 waynboot-mall プロジェクトアドレス: https://github.com/wayn111/waynboot-mall 1. SpringSecurity とは SpringSecurity は、Spring フレームワークをベースとした、強力かつ柔軟なセキュリティの提供を目的としたオープンソース プロジェクトです。 Java アプリケーションの場合。

Java を使用して Spring Security OAuth2 に基づくシングル サインオン システムを開発する方法 Java を使用して Spring Security OAuth2 に基づくシングル サインオン システムを開発する方法 Sep 20, 2023 pm 01:06 PM

Java を使用して SpringSecurityOAuth2 に基づくシングル サインオン システムを開発する方法 はじめに: インターネットの急速な発展に伴い、ユーザーにログインを必要とする Web サイトやアプリケーションがますます増えていますが、ユーザーは Web サイトやアプリケーションごとにログインすることを望んでいません。アカウント番号とパスワード。シングル サインオン システム (SingleSign-On、SSO と呼ばれる) を使用すると、この問題を解決できます。これにより、ユーザーは一度ログインした後は認証を繰り返すことなく、複数の Web サイトやアプリケーションにアクセスできるようになります。この記事で紹介するのは

Spring Securityは、残りのサービスで認証済みユーザーと未認証ユーザーのユーザー情報を取得します Spring Securityは、残りのサービスで認証済みユーザーと未認証ユーザーのユーザー情報を取得します Feb 08, 2024 pm 11:00 PM

Springrest サービスを持っており、認証されたユーザーと認証されていないユーザーの両方にそれを使用したいと考えています。ユーザーが認証されている場合は、securitycontextholder.getcontext().getauthentication()からユーザー情報を取得したいと思います。以下に示すように、ouath2 構成で .antmatchers("/app/rest/question/useroperation/list/**").permitall() を使用すると、認証されたユーザーのユーザー情報は取得できますが、認証されたユーザーのユーザー情報は取得できません。表示されます 40

Java RESTful API クックブック: あらゆるアプリケーションに最適なサービスの構築 Java RESTful API クックブック: あらゆるアプリケーションに最適なサービスの構築 Mar 27, 2024 pm 12:11 PM

はじめに 今日の相互接続された世界では、RESTful API はアプリケーション間の通信のための重要なメカニズムとなっています。強力なプログラミング言語である Java を使用すると、効率的でスケーラブルで、適切に保守された RESTful API を構築できます。第 1 章: RESTfulAPI の基本 RESTful アーキテクチャの原則とベスト プラクティス Http メソッド、ステータス コード、応答ヘッダー JSON や XML などのデータ形式 第 2 章: RESTfulAPI の設計とモデリング RESTfulAPI の設計原則 リソース モデリングと URI 設計 バージョン管理と HATEOAS 第 3 章: 使用SpringBoot による RESTful API の構築 SpringBoot の概要と構築の開始

vue フレームワークと springboot フレームワークはフロントエンドおよびバックエンドとどのように連携しますか? vue フレームワークと springboot フレームワークはフロントエンドおよびバックエンドとどのように連携しますか? Apr 06, 2024 am 01:51 AM

Vue.js と Spring Boot は以下を介して対話します。 RESTful API: Vue.js は Axios を使用して非同期 HTTP リクエストを送信し、Spring Boot は RESTful API 実装を提供します。データの受け渡し: データは、リクエスト本文やクエリ パラメーターなどのリクエストと応答を通じて渡されます。リクエストメソッド:GET、POST、PUT、DELETEなどのHTTPリクエストメソッドを使用して動作を指定します。ルーティング: Spring Boot @RequestMapping アノテーションはコントローラーのルーティングを定義し、Vue.js は Vue Router を使用してインターフェイスのルーティングを定義します。状態管理:Vu