keycloak入门搭建(上篇)

安装的话在这里就不赘述了,安装成功后进入以下控制页面。访问路径是:服务器IP:端口号/auth/

keycloak入门搭建(上篇)

初始只有英文,在主题那里 启用国际化,选上CN,再登录一下就可以选择中文了。

废话不多说,添加域,自己定义个名字,就是上图我涂掉的部分。

然后点击左侧菜单的客户端,如下图所示,我涂掉的就是新添加的域,其他的都是系统自带的。

keycloak入门搭建(上篇)

点击涂掉的那个,进入设置页面,如下图。

keycloak入门搭建(上篇) 根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,就会生成这个

keycloak入门搭建(上篇)

 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页面,如下图。

keycloak入门搭建(上篇)

页面上的  记住我,忘记密码,注册 等选项可以在领域设置---登录的地方DIY,如下图:

keycloak入门搭建(上篇) 

想登陆的话,如下,在角色里加个权限组,然后再用户那里追加个用户和密码,然后加到刚才的权限组里就可以登陆了。

keycloak入门搭建(上篇) 

登陆之后就跳转到工程的top页面。

关掉页面之后,再打开入口页面http://ServerIP:端口号/xxx-xxx/,不用再登录了,会直接跳到TOP页面。

至此,默认设置的简单keycloak完成。

下篇讲一下自定义登录页面和自定义登录认证。

因为自己的项目怎么也不能用人家keycloak的登录页面和用户认证吧。

上一篇:JAVA 中的单元测试(IDEA)


下一篇:部署git代码三种方式