CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
CAS 5.1.8をコンパイルしてwarパッケージを生成し、データベース(Oracle)認証に対応するように設定を変更して、tomcatに配備して、いざ使おうと思ったら、クライアントアプリケーションを開いて、CASにジャンプしても、アカウントのパスワード入力欄がなく、刺々しいエラーメッセージだけが表示されました。
後で検索エンジンで答えを探しに来る人の便宜のために、付録の関連文章を。
Services not authenticated for authorization
The service record for CAS is empty and no service is defined. Applications that wish to authenticate through CAS must be explicitly defined in the service record.
Application Not Authorized to Use CAS
You are not authorized to access the application as your account \
is missing privileges required by the CAS server to authenticate into this service. Please notify your support desk.
The application you attempted to authenticate to is not authorized to use CAS. Contact your CAS administrator to learn how you might register and Contact your CAS administrator to learn how you might register and integrate your application with CAS.
The services registry of CAS is empty and has no service definitions.
Applications that wish to authenticate with CAS must explicitly be defined in the services registry.
最初にこのプロンプトを見たとき、CASがあなたを認証してサービスを提供するために、アプリケーションのアドレスをCASに登録しなければならないのだと思いました。それからしばらく検索してみましたが、誰も触れているのを見ませんでした。基本的には、実際にはhttps/httpの認証が絡むと書いてあります。というのも、CAS 4.*以降、CASはデフォルトでhttpsしかサポートしていないと言われています。今、持っているこのアプリケーションは全てhttpなので、CASが認識しないのです。
古今東西を探し回って、最終的に解決したのは。
Step 1, modify \WEB-INFclassesservices ◇HTTPSandIMAPS◇-10000001.json
"serviceId" : "^(https|imaps)://. *"
Change to ==>
"serviceId" : "^(https|http|imaps)://. *",
Step 2: プロジェクト設定ファイル \WEB-INF ³³³.properties を変更します。
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true #This is really important !!!!!!!!
基本的に、誰も最後の節に言及することはありません。
cas.serviceRegistry.initFromJson=true
だから、HTTPSandIMAPS-10000001.jsonをどう変えてもうまくいかず、いつも赤いエラーメッセージが表示されます。そんな時、外国人の方の回答でこの文章を見て、「これが問題のはずだ」と心の中で思いました。なぜ、このような回答が隠されているのでしょうか!?
また、誰かが
c:\tomcat\etc\cas\config\cas.properties
一体何なんだ?実は、上の2番目のステップから設定を書いている人がいるだけなんです。設定をapplication.propertiesに一律に書くのではなく、複数個所に分けて書くのが良いようです。それに、CASの実行時に自動生成されるetcディレクトリは、ログを中に入れるんだ。これは、tomcatの中ではなく、tomcatがあるディスクのルートディレクトリに配置されます。パスは変更可能だと思いますが、CASが読み込めるapplication.propertiesに書いた方が全く問題ありません。
このヒントに関しては
httpsに対応しない限り消えないし、単純にこのページを手動で変えればいいだけ。
関連
-
型に解決できない エラー解決
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
Uncaught ReferenceError: は定義されていません。
-
Junitのユニットテストはjava.lang.Testを報告します。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
配列定数は初期化子でのみ使用可能です。
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
Java基礎編 - オブジェクト指向
-
MyBatisカスタムタイプハンドラ TypeHandler
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
NullPointerException - java.lang.
-
Javaジェネリックを1つの記事で
-
-bash: java: コマンドが見つからない 解決方法
-
アノテーション「@Retention」の役割
-
Junitのユニットテストエラー
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
代入の左辺は変数でなければならない 解答
-
ロンボク版問題による血の海を思い出せ