UAAサンプルアプリとJavaログインサーバーを実行しているデプロイメントがあります。UAAとlogin-serverをそれぞれカスタムuaa.ymlとlogin.ymlで構成しました。以下に示すように、/ uaa / uaa / src / main / webapp / WEB-INF / spring / oauth-clients.xmlの内容を確認して、「ログイン」クライアントの詳細に基づいてuaa.ymlにデータを入力しました。 :
<entry key="login">
<map>
<entry key="id" value="login" />
<entry key="secret" value="loginsecret" />
<entry key="scope" value="openid,uaa.user" />
<entry key="authorized-grant-types" value="client_credentials,authorization_code" />
<entry key="authorities" value="oauth.login" />
<entry key="autoapprove" value="true" />
</map>
</entry>
それに応じて、私のuaa.ymlでこれを構成しました。これは問題なく機能しているようで、ログインしてサンプルアプリを閲覧できます。
ただし、その後サンプルアプリの/ appprovalsページにアクセスすると、apcipals.jspにjavascriptエラーが発生しました。これは、messages.propertiesファイルにscope.uaa.userに対応するエントリがないことが原因であると考えられます。
[2013-03-20 18:05:52.787] login/login-server - ???? [http-8080-1] .... DEBUG --- DispatcherServlet: Could not complete request
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: No message found under code 'scope.uaa.user' for locale 'en_US'.
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
...
したがって、問題は、スコープ「uaa.user」がログインサーバーに本当に必要なのかということです。そして、もしそうなら、messages.propertiesファイルのエントリは何と言うべきですか?uaa.userスコープの合意されたテキストの説明を提供する場所が見つかりませんでした。
回避策として、messages.propertiesでそのスコープの独自のテキストを作成しただけで、承認ページに[OK]が表示されるようになりました。
ありがとう、ジョン