我正在整合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描述注册的阀门。