我正在整合keycloak.js文件與我的應用程序。我的應用程序URL是http://localhost:8083/#!/Keycloak是有問題的角Js#路由
由於URL中的#不起作用。所以我使用$locationProvider.html5Mode(true);
從URL中刪除#,現在Keycloak集成正在運行。
但是現在瀏覽器在刪除#後刷新我的URL(例如,到http://localhost:8083/page1)時正在進行服務器調用。
任何幫助我解決刷新問題?
我正在整合keycloak.js文件與我的應用程序。我的應用程序URL是http://localhost:8083/#!/Keycloak是有問題的角Js#路由
由於URL中的#不起作用。所以我使用$locationProvider.html5Mode(true);
從URL中刪除#,現在Keycloak集成正在運行。
但是現在瀏覽器在刪除#後刷新我的URL(例如,到http://localhost:8083/page1)時正在進行服務器調用。
任何幫助我解決刷新問題?
當您使用html5mode時,您還需要在角度文檔(https://docs.angularjs.org/guide/ $位置)中編寫的服務器端重寫,段落服務器端。
因此,如果您能夠將服務器上的URL重寫爲應用程序的根目錄,它將起作用。
但
你可能會遇到麻煩,因爲我做了EAP 6.4。
如果你想訪問除根其它一些方面,例如
/根/一些/角/背景
和你沒有登陸,比重寫會剝奪上下文和登錄失敗OAuth_Token_Request_State。
的問題是,該KeycloakAuthenticatorValve在RewriteValve,這條上下文之後被調用。如果Keycloak會以相反的順序被調用,它將會完美地工作。我檢查了KeycloakAdapterConfigDeploymentProcessor,它負責添加閥門,它將列表末尾的閥門添加到列表的開頭。
爲了解決這個問題,我有KeycloakAuthenticatorValve後創建自定義DeploymentProcessor,其廣告RewriteValve而不必在的jboss-web.xml描述註冊的閥門。