中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

建站之星怎么用國外網(wǎng)站搭建

建站之星怎么用,國外網(wǎng)站搭建,游戲公司怎么注冊,云南推廣由于網(wǎng)上博客大部分都只有登陸沒有退出&#xff0c;自己花了一些時(shí)間研究了一下&#xff0c;這里將相關(guān)內(nèi)容進(jìn)行記錄&#xff0c;基于Keyclaok 20的版本&#xff0c;實(shí)現(xiàn)springboot服務(wù)單點(diǎn)登錄與退出 一、依賴 <!-- 在父工程中 --> <dependencyManagement><d…

由于網(wǎng)上博客大部分都只有登陸沒有退出,自己花了一些時(shí)間研究了一下,這里將相關(guān)內(nèi)容進(jìn)行記錄,基于Keyclaok 20的版本,實(shí)現(xiàn)springboot服務(wù)單點(diǎn)登錄與退出

一、依賴

<!-- 在父工程中 -->
<dependencyManagement><dependencies><!-- 導(dǎo)入依賴 --><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配置

這個(gè)是主要的,用設(shè)置攔截器實(shí)現(xiàn)登陸與退出

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()//設(shè)置哪些可以忽略掉授權(quán).authorizeRequests().antMatchers("/user/login", "/token/generate","/access/**", "/js/**","/css/**","/fonts/**", "/index.html", "/error").permitAll()//除了上面忽略掉授權(quán)請求,剩下所有必須經(jīng)過授權(quán)才可以訪問.antMatchers("/**").authenticated().and().cors().and().csrf().disable();}//處理logout自動(dòng)跳轉(zhuǎn)請求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.risenshineclean.com/news/33429.html

相關(guān)文章:

  • 網(wǎng)站 css江門百度seo公司
  • 東莞市建設(shè)網(wǎng)站首頁百度怎樣發(fā)布作品
  • app開發(fā)及后期維護(hù)費(fèi)用重慶企業(yè)站seo
  • 陜西省建設(shè)廳網(wǎng)站三類b證磁力蜘蛛
  • 怎么做網(wǎng)絡(luò)推廣營銷seo專員的工作內(nèi)容
  • 商務(wù)網(wǎng)站建設(shè)實(shí)訓(xùn)報(bào)告網(wǎng)絡(luò)銷售面試問題有哪些
  • 男人互做網(wǎng)站關(guān)鍵詞排名靠前
  • 金華建設(shè)學(xué)校繼續(xù)教育網(wǎng)站廣東培訓(xùn)seo
  • 企業(yè)模擬網(wǎng)站建設(shè)本地推廣平臺(tái)有哪些
  • 大型電子商務(wù)網(wǎng)站開發(fā)架構(gòu)技能培訓(xùn)學(xué)校
  • python開發(fā)手機(jī)網(wǎng)站開發(fā)湖南網(wǎng)站營銷推廣
  • 蘭州網(wǎng)站建設(shè)招聘b2b電子商務(wù)網(wǎng)站
  • 怎么做租房網(wǎng)站營銷失敗案例分析
  • 定制開發(fā)電商網(wǎng)站建設(shè)百度seo和sem的區(qū)別
  • 菏澤正耀網(wǎng)站建設(shè)公司怎么樣長沙網(wǎng)站優(yōu)化價(jià)格
  • 集團(tuán)企業(yè)網(wǎng)站建設(shè)屬于seo網(wǎng)站優(yōu)化
  • 最早做視頻播放網(wǎng)站百度排名優(yōu)化軟件
  • 房屋結(jié)構(gòu)自建設(shè)計(jì) 網(wǎng)站app開發(fā)網(wǎng)站
  • 免費(fèi)空間asp網(wǎng)站seo基礎(chǔ)入門
  • 長沙房地產(chǎn)交易網(wǎng)seo搜索引擎優(yōu)化工具
  • 廣漢網(wǎng)站建設(shè)ghxhwl免費(fèi)域名注冊服務(wù)網(wǎng)站
  • 重慶網(wǎng)站建站建設(shè)的費(fèi)用seo最強(qiáng)
  • 做網(wǎng)站可以用別人的身份證嗎網(wǎng)站流量數(shù)據(jù)
  • 天津網(wǎng)站建設(shè)開發(fā)有哪些天津百度網(wǎng)站排名優(yōu)化
  • 伊朗最新消息紹興seo計(jì)費(fèi)管理
  • 博客系統(tǒng)做網(wǎng)站搜索引擎seo關(guān)鍵詞優(yōu)化方法
  • 電子銷售網(wǎng)站模板免費(fèi)下載百度點(diǎn)擊工具
  • 中國建筑人事部大全合肥正規(guī)的seo公司
  • 住建局領(lǐng)導(dǎo)班子成員分工百度首頁排名優(yōu)化價(jià)格
  • 可以做兼職的網(wǎng)站有哪些工作室石家莊網(wǎng)站建設(shè)方案推廣