当前位置: 首页 > news >正文

免费的网站搭建怎么创建网站?

免费的网站搭建,怎么创建网站?,制作网页之前必须先建立的是,清河县做网站由于网上博客大部分都只有登陆没有退出&#xff0c;自己花了一些时间研究了一下&#xff0c;这里将相关内容进行记录&#xff0c;基于Keyclaok 20的版本&#xff0c;实现springboot服务单点登录与退出 一、依赖 <!-- 在父工程中 --> <dependencyManagement><d…

由于网上博客大部分都只有登陆没有退出,自己花了一些时间研究了一下,这里将相关内容进行记录,基于Keyclaok 20的版本,实现springboot服务单点登录与退出

一、依赖

<!-- 在父工程中 -->
<dependencyManagement><dependencies><!-- 导入依赖 --><dependency><groupId>org.keycloak.bom</groupId><artifactId>keycloak-adapter-bom</artifactId><version>22.0.1</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><!-- 在子工程中 -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.keycloak</groupId><artifactId>keycloak-spring-boot-starter</artifactId></dependency><dependency><groupId>org.keycloak</groupId><artifactId>keycloak-spring-security-adapter</artifactId></dependency>
</dependencies>

二、keycloak配置

这个是主要的,用设置拦截器实现登陆与退出

package com.example.basic.conf;import org.keycloak.KeycloakPrincipal;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;
import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
import org.keycloak.adapters.springsecurity.account.SimpleKeycloakAccount;
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;
import org.springframework.security.core.session.SessionRegistryImpl;
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
import org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy;
import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@KeycloakConfiguration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class KeycloakSecurityConfiguration extends KeycloakWebSecurityConfigurerAdapter {@Autowiredpublic void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {KeycloakAuthenticationProvider keycloakAuthenticationProvider = keycloakAuthenticationProvider();keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper());auth.authenticationProvider(keycloakAuthenticationProvider);}@Bean@Overrideprotected SessionAuthenticationStrategy sessionAuthenticationStrategy() {return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());}@Beanpublic org.keycloak.adapters.KeycloakConfigResolver KeycloakConfigResolver() {return new KeycloakSpringBootConfigResolver();}@Overrideprotected void configure(HttpSecurity http) throws Exception {super.configure(http);http.logout()//拦截logout请求.logoutRequestMatcher(new AntPathRequestMatcher("/logout")).addLogoutHandler(keycloakLogoutHandler()).logoutSuccessHandler(logoutSuccessHandler()).deleteCookies("JSESSIONID").and()//设置哪些可以忽略掉授权.authorizeRequests().antMatchers("/user/login", "/token/generate","/access/**", "/js/**","/css/**","/fonts/**", "/index.html", "/error").permitAll()//除了上面忽略掉授权请求,剩下所有必须经过授权才可以访问.antMatchers("/**").authenticated().and().cors().and().csrf().disable();}//处理logout自动跳转请求private LogoutSuccessHandler logoutSuccessHandler() {return new LogoutSuccessHandler() {@Overridepublic void onLogoutSuccess(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse, Authentication authentication)throws IOException, ServletException {KeycloakAuthenticationToken keycloakAuthenticationToken = (KeycloakAuthenticationToken)authentication;KeycloakSecurityContext keycloakSecurityContext =keycloakAuthenticationToken.getAccount().getKeycloakSecurityContext();String idTokenHint = keycloakSecurityContext.getIdTokenString();String issuer = keycloakSecurityContext.getIdToken().getIssuer();String keycloakBaseUrl = issuer + "/protocol/openid-connect/logout";String postLogoutRedirectUri = httpServletRequest.getScheme() + "://" + httpServletRequest.getHeader("host");String logoutUrl = keycloakBaseUrl + "?post_logout_redirect_uri=" + postLogoutRedirectUri + "&id_token_hint=" + idTokenHint;// Do logout by redirecting to Keycloak logouthttpServletResponse.sendRedirect(logoutUrl);}};}
}

http://www.tj-hxxt.cn/news/61658.html

相关文章:

  • 诸暨网站建设百度指数分析报告案例
  • 购物网站排名2015广告公司推广渠道
  • 深圳做营销网站设计关键词排名公司
  • 广告网站开发免费源码网站
  • 徐州做英文网站的公司辅导班
  • 网站开发用什么系统百度精准获客平台
  • 第三方网站持啊传媒企业推广
  • 网页设计 网站建设 哪个好泉州百度开户
  • 房屋中介做网站的网络营销与直播电商专升本
  • 一级网站和二级网站的区别网站权重什么意思
  • 怎么查个人征信记录seo自动优化软件下载
  • 外贸做平台好还是自己建网站好比较好的网络推广平台
  • 公司网站建设 上海网络推广员工资多少钱
  • wordpress关键词seo教程搜索引擎优化入门与进阶
  • 自己电脑做网站访问速度百度竞价包年推广公司
  • 太原网站建设制作公司哪家好进一步优化营商环境
  • 中小企业网站建设 论文免费发软文的网站
  • 小说阅读网站开发视频网络推广公司十大排名
  • 住房公积金网站怎么做减员seo方案怎么做
  • 营销网站制作全包百度投票人气排行榜入口
  • 站长工具 怎么做网站地图网络营销方案3000字
  • 南宁哪里有做网站的公司西安竞价推广托管
  • 企业网站 seo怎么做个人网站制作模板主页
  • 自己做网站的给微信取个什么名字好昆山优化外包
  • 自己做的网站链接到微信支付界面网络营销策略包括哪几大策略
  • 武汉高端网站建设优化网址查询域名
  • 前端开发人员怎么做网站百度95099如何转人工
  • 付费主题wordpressaso优化贴吧
  • 五金批发网站怎么做百度推广后台
  • 成都 网站改版百度推广优化怎么做