安装的话在这里就不赘述了,安装成功后进入以下控制页面。访问路径是:服务器IP:端口号/auth/
初始只有英文,在主题那里 启用国际化,选上CN,再登录一下就可以选择中文了。
废话不多说,添加域,自己定义个名字,就是上图我涂掉的部分。
然后点击左侧菜单的客户端,如下图所示,我涂掉的就是新添加的域,其他的都是系统自带的。
点击涂掉的那个,进入设置页面,如下图。
根URL,写Tomcat地址,http://ServerIP:端口号,后面不要加/
有效的重定向URL,写项目路径,/xxx-xxx/*,前后都要加/,最后还要加个*,别问为什么,问就是爱的供养。
接下来说一下项目配置,需要以下几个必要文件。
1.LoginAction.java
mapping指向入口页面,value=”/”,return "xxx/login",login页面实际路径
2.login.jsp
入口页面,至少有个按钮指向keycloak重定向Action,href="sso/oidc-login"
3.OidcLoginAction.java
重定向Action,value="sso/oidc-login",return "redirect:/service/top"
4.top.jsp
登陆成功后要跳转到top页面
5.keycloak.json
如下图,在客户端选最右边的安装选项,然后下拉菜单选择json,就会生成这个
6.spring-security.xml
重要的配置文件,下面几个重要地方摘要。
解释一个地方,JSP的实际地址是xxx/,上面重定向的JSP地址是service/,这个地址是在这里配置的。当然还有keycloak.json,不再做赘述。
<bean id="adapterDeploymentContext" class="org.keycloak.adapters.springsecurity.AdapterDeploymentContextFactoryBean">
<constructor-arg value="/WEB-INF/keycloak.json" />
</bean>
<sec:http pattern="/sso/**" auto-config="false" entry-point-ref="keycloakAuthenticationEntryPoint">
<sec:custom-filter ref="keycloakPreAuthActionsFilter" before="LOGOUT_FILTER" />
<sec:custom-filter ref="keycloakAuthenticationProcessingFilter" before="FORM_LOGIN_FILTER" />
<sec:custom-filter ref="keycloakSecurityContextRequestFilter" after="FORM_LOGIN_FILTER" />
<sec:intercept-url pattern="/sso/oidc-login" access="isAuthenticated()" />
<sec:custom-filter ref="logoutFilter" position="LOGOUT_FILTER" />
<sec:csrf disabled="true"/>
</sec:http>
<bean id="boatAuthenticationSuccessHandler" class="jp.brtb.keycloak.fw.BoatRedirectAuthenticationHandler">
<property name="defaultTargetUrl" value="/service/top"/>
</bean>
<sec:http auto-config="false" entry-point-ref="boatAuthenticationEntryPoint">
<sec:custom-filter ref="boatAuthenticationProcessingFilter" before="FORM_LOGIN_FILTER" />
<sec:logout logout-url="/logout" success-handler-ref="boatLogoutSuccessHandler" delete-cookies="JSESSIONID" invalidate-session="true" />
<sec:intercept-url pattern="/service/**" access="isAuthenticated()" />
<sec:csrf disabled="true"/>
</sec:http>
其他的没什么了,maven工程必须的东西pom,该引入的包包都加上。
OKTomcat启动,打开 http://ServerIP:端口号/xxx-xxx/,可以看到login页面,点击login按钮或者链接,就会跳到keycloak自带的login页面,如下图。
页面上的 记住我,忘记密码,注册 等选项可以在领域设置---登录的地方DIY,如下图:
想登陆的话,如下,在角色里加个权限组,然后再用户那里追加个用户和密码,然后加到刚才的权限组里就可以登陆了。
登陆之后就跳转到工程的top页面。
关掉页面之后,再打开入口页面http://ServerIP:端口号/xxx-xxx/,不用再登录了,会直接跳到TOP页面。
至此,默认设置的简单keycloak完成。
下篇讲一下自定义登录页面和自定义登录认证。
因为自己的项目怎么也不能用人家keycloak的登录页面和用户认证吧。