hiro-uaa は、Shiro をベースとした軽量のユーザー アカウントおよび ID 認証ソリューション (UAA) サービスです。
最初にプロジェクトを始めるときは、Shiro のシンプルさが多くの開発者のパーミッション フレームワークの第一選択になると思いますが、プロジェクトが 1 から n に拡張され、統一された認証と認可が必要になると、Shiro 自体は統一的な認証と認可をサポートしません。 .Shiro には CasFilter がありますが、CAS はより重い別のフレームワークであり、認証および認可サービスをよりシンプルに、より軽く、より使いやすくするために、Shiro-UAA が作成されました。
軽量 UAA サーバー
ピュアシロ
学びやすい
拡張が簡単
箱から出してすぐに使えます
1.認証サーバー
メイブン
組み込みエンドポイント
URI アドレスの説明/uaa-auth/authentication 認可を要求するアドレスは、ログイン ページ/uaa-auth/authentication/apporve にリダイレクトされます。認証サーバーは認可に同意し、コード アドレス/uaa-auth/access-token を配布してアクセスを取得します。認証サーバーからログアウトするための認証サーバー トークン アドレス/uaa-auth/logout アドレス拡張可能なAPI
インターフェイス名の説明 AccessClientService アクセス アプリケーション サービス AccessTokenService アクセス トークン サービス AccountService ユーザー サービス AuthCodeServicecode サービス roleService 役割サービスログイン
ログインページとログイン検証のカスタマイズ、org.apache.hiro.authc.credential.CredentialsMatcher の実装、ログイン時の検証ロジックの実装、および hiro.loginUrl の構成
転送エラー
デフォルトでは、サーバーで OAuth 問題が発生すると、エラー情報を含むリソース アドレス (redirect_uri パラメーター) にジャンプします。forwardErrorUrl が設定されている場合は、リダイレクトされず、エラー ページが表示されます。ページをカスタマイズして hiro を設定する必要があります。 .uaa .server.forwardErrorUrl、この構成の目的は、サーバーを使用した異常なジャンプを防ぐことです。
拡張設定パラメータ
パラメータ名 説明 hiro.uaa.server.codeExpiresUAA 配布 コードの有効期限、単位は秒 hiro.uaa.server.accessTokenExpiresUAA 配布 AccessToken の有効期限、単位は秒 hiro.uaa.server.refreshTokenExpiresUAA 配布 RefreshToken の有効期限、単位は秒hiro 秒。loginUrl カスタマイズされたログイン アドレス hiro.uaa.server.clien ts[].name アクセス アプリケーション名、デフォルト メモリを使用する場合に有効 AccessClientService hiro.uaa.server.clients[].clientId アクセス アプリケーション clientId、デフォルト メモリを使用する場合に有効 AccessClientService hiro.uaa.server.clients[].clientSecret アクセスアプリケーション clientSecret を入力します。これは、デフォルトのメモリ AccessClientService hiro.uaa.ser を使用する場合に有効です。 ver.roles[].name ロール名、ShiroのRoleに対応、デフォルトのメモリRoleServiceを使用する場合に有効 hiro.uaa.server.roles[].permCodes[] ロールの権限、ShiroのPermissionに対応、デフォルトのメモリRoleServiceを使用する場合に有効. hiro.uaa.server.roles[].clientId ロールが属するアプリケーション。デフォルトのメモリの RoleService を使用する場合に有効です。 ts[].username アカウントのログイン名、デフォルトのメモリを使用する場合に有効 AccountService hiro.uaa.server.accounts[].password アカウントのパスワード、デフォルトのメモリを使用する場合に有効 AccountService hiro.uaa.server.accounts[].roles[]アカウント所有のロール、デフォルトのメモリを使用する場合に有効 AccountService hiro.uaa.server.forwardErrorUrl カスタム OAuth問題エラーアドレス2.リソースサーバー
メイブン
フィルターチェーン定義
CustomFilterChainDefinition を実装し、さまざまなフィルターを通過するためのさまざまなパスを定義します。デフォルトの /** は resourceServerFilter を通過します。
ログアウト
最初にリソース サーバーからログアウトし、次に UAA からログアウトし、LogoutEndpoint をロードするように hiro.logoutUrl パラメーターを構成します。
注釈
シロと同じ
アノテーション名@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuest拡張設定パラメータ
パラメータ名 説明 hiro.uaa.resource.serverSchemehiro.uaa.resource.serverHostUAA のスキームのアドレス hiro.uaa.resource.serverPortUAA のアドレスPortshiro.uaa.resource.s erverContextPathUAA アドレス ContextPathhiro.uaa.resource.clientIdUAA が割り当てられた ClientIdhiro.uaa.resource.clientSecretUAA が割り当てられた ClientSecretshiro.logoutUrlResourceサーバーログアウトアドレス3.ビズロガー
ユーザーのビジネス記録を記録する
注釈
アノテーション名 @BizLogger アノテーションメソッド説明 備考 備考、デフォルト: ""class_クラス名を記録するかどうか、デフォルト: truemethod メソッド名を記録するかどうか、デフォルト: truearguments パラメータのインデックスを記録する必要がある、デフォルト: {}return_記録するかどうか戻り値、デフォルト:falsesubject ユーザー名を記録するかどうか、デフォルト: trueBizLoggerEntityStringifier
BizLoggerEntityStringifier の実装、ロガー出力コンテンツのカスタマイズ
jdk1.8+とスプリングブート
認証サーバー展開可能なサービスを提供する
ユーザーメトリクスを認証サーバーに提供する