0

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]が表示されるようになりました。

ありがとう、ジョン

4

2 に答える 2

0

一部のスコープはアプリケーションに合わせてカスタマイズされている可能性があるため、ログイン サーバーは、どのスコープが使用可能になるかを予測できません。バグはここで修正されました https://github.com/cloudfoundry/login-server/commit/c39aa19db33c12a0d9740e2c0a53698b87889ebc スコープを表すメッセージがない場合は、単にスコープの名前を出力してください。

于 2013-12-17T15:02:57.433 に答える
0

はい、ログインサーバーには「uaa.user」が必要です。messages.properties ファイルには、任意のテキスト文字列を含めることができ、それに応じてアプリケーションで使用されます。それが役立つかどうか教えてください。

ありがとう、

  • ヒテシュ
于 2013-03-21T21:00:08.210 に答える