2013-03-20 41 views
0

我有一個部署,我正在運行UAA示例應用程序以及Java登錄服務器。我已經分別使用自定義的uaa.yml和login.yml配置了我的UAA和登錄服務器。我已經通過查看/uaa/uaa/src/main/webapp/WEB-INF/spring/oauth-clients.xml的內容,基於「登錄」客戶端的詳細信息填充了uaa.yml,如下所示:UAA是否要求登錄服務器具有範圍uaa.user?

<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中進行了相應的配置。這似乎工作正常,我可以登錄並上傳示例應用程序。

然而,當我隨後在示例應用程序訪問/認證頁面,我得到了approvals.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。

感謝, 約翰

+0

這在DEBUG上記錄的非常可以忽略。它不會阻止應用程序正常工作,正確,只是在審批屏幕上呈現爲默認消息? – 2013-03-24 00:47:16

回答

0

是,由登錄服務器所需的 「uaa.user」。您可以在messages.properties文件中包含任何文本字符串,您將在相應的應用程序中使用它。 讓我知道如果有幫助。

感謝,

  • 亞太區首席技術官Matt
+0

謝謝。由於範圍是必需的,因此它在登錄服務器中的messages.properties文件中的省略顯然是一個錯誤(儘管很小),因爲這會阻止批准頁面正確呈現。我可以針對該更改發出拉取請求。通常,需要將messages.properties文件與所使用的範圍保持同步。 – 2013-03-22 13:35:26

相關問題