摘要:今天為大家?guī)?lái)一個(gè)優(yōu)雅的使用的方案,通常我們?cè)谑褂脮r(shí)需要去定義和之類的配置,而且整體寫(xiě)起來(lái)非常硬邦邦,不是硬編碼就是放或者,但我怎么管理我的那么多在現(xiàn)在前后端分離的場(chǎng)景下,通常一個(gè)后端服務(wù)會(huì)提供和給客戶端去做認(rèn)證的請(qǐng)求,但有沒(méi)有考慮過(guò)如果有
今天為大家?guī)?lái)一個(gè)優(yōu)雅的使用Spring Security OAuth2的方案,通常我們?cè)谑褂脮r(shí)需要去定義AuthorizationServer和ResourceServer之類的配置,而且整體寫(xiě)起來(lái)非常Very Hard(硬邦邦),不是硬編碼就是放Redis或者JDBC,但我怎么管理我的那么多Client?在現(xiàn)在前后端分離的場(chǎng)景下,通常一個(gè)后端服務(wù)會(huì)提供client id和client secret給客戶端去做認(rèn)證的請(qǐng)求,但有沒(méi)有考慮過(guò)如果有多個(gè)服務(wù)要依賴后端,難道全部采用一個(gè)client id和client secret?怎么給他們做區(qū)分做限制?難道繼續(xù)硬編碼的加?特別是在現(xiàn)在非常流行的微服務(wù)上,我一個(gè)服務(wù)很有可能對(duì)應(yīng)著很多個(gè)應(yīng)用。所以我在這里給大家推薦一個(gè)我個(gè)人認(rèn)為比較優(yōu)雅的解決方案 Watchdog 歡迎大家Star和PR以及ISSUES
首先引入依賴
org.yuequan watchdog-spring-boot-starter 0.7.0.BETA
然后執(zhí)行項(xiàng)目中的Watchdog的schema.sql地址在Github點(diǎn)擊前往,建立所依賴的表配置好項(xiàng)目的DataSource
然后再啟動(dòng)類上面添加@EnableWatchdog
@SpringBootApplication @EnableWatchDog public class WatchdogSampleApplication { public static void main(String[] args) { SpringApplication.run(WatchdogSampleApplication.class, args); } }
然后配置你的密碼加密方式和認(rèn)證管理,例如:
@Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private PasswordEncoder passwordEncoder; @Bean public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } @Bean @Override protected AuthenticationManager authenticationManager() throws Exception { return super.authenticationManager(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("test") .password(passwordEncoder.encode("123456")) .authorities("USER"); } }
然后啟動(dòng)項(xiàng)目,在瀏覽器地址欄輸入http://localhost:8080/watchdog.html,然后你會(huì)看見(jiàn)如下界面
然后點(diǎn)擊Create按鈕
輸入你應(yīng)用的名字,回調(diào)地址和Scope你可以不填,不填將使用默認(rèn)的,然后點(diǎn)OK
接著點(diǎn)Show
可以點(diǎn)擊回調(diào)地址跳轉(zhuǎn)客戶端授權(quán),也可以復(fù)制ClientID和ClientSecret進(jìn)行password認(rèn)證
比如:http://localhost:8080/oauth/token?username=test&password=123456&grant_type=password&scope=DEFAULT&client_id=1327ea6b-a452-48a1-a3d3-a27c5f7ca9c5&client_secret=c4b16a0a-fb0e-470a-b6c4-73ddb4ee74b3
是不是很簡(jiǎn)單方便,如果該starter對(duì)大家有幫助,可以點(diǎn)個(gè)star來(lái)支持我~,我會(huì)長(zhǎng)期的去完善它和維護(hù)它,在使用的過(guò)程中遇見(jiàn)任何問(wèn)題都可以在Github上提問(wèn),Github的地址是https://github.com/yuequan199...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/72371.html
摘要:前言基于做微服務(wù)架構(gòu)分布式系統(tǒng)時(shí),作為認(rèn)證的業(yè)內(nèi)標(biāo)準(zhǔn),也提供了全套的解決方案來(lái)支持在環(huán)境下使用,提供了開(kāi)箱即用的組件。 前言 基于SpringCloud做微服務(wù)架構(gòu)分布式系統(tǒng)時(shí),OAuth2.0作為認(rèn)證的業(yè)內(nèi)標(biāo)準(zhǔn),Spring Security OAuth2也提供了全套的解決方案來(lái)支持在Spring Cloud/Spring Boot環(huán)境下使用OAuth2.0,提供了開(kāi)箱即用的組件。但...
摘要:下班后閑著無(wú)聊看了下中的自動(dòng)配置,把我的理解跟大家說(shuō)下。上述的每一個(gè)自動(dòng)配置類都有自動(dòng)配置功能,也可在配置文件中自定義配置。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人。如有問(wèn)題,請(qǐng)后臺(tái)留言,反正我也不會(huì)聽(tīng)。 前言 這個(gè)月過(guò)去兩天了,這篇文章才跟大家見(jiàn)面,最近比較累,大家見(jiàn)諒下。下班后閑著無(wú)聊看了下 SpringBoot 中的自動(dòng)配置,把我的理解跟大家說(shuō)下。 配置文件能寫(xiě)什么? 相信接觸過(guò) Sprin...
摘要:認(rèn)證服務(wù)器和瀏覽器控制臺(tái)也沒(méi)有報(bào)錯(cuò)信息。這里簡(jiǎn)單介紹下如何查閱源碼,首先全局搜索自己的配置因?yàn)檫@個(gè)地址是認(rèn)證服務(wù)器請(qǐng)求授權(quán)的,所以,請(qǐng)求認(rèn)證的過(guò)濾器肯定包含他。未完待續(xù),下一篇介紹資源服務(wù)器和認(rèn)證服務(wù)器的集成。 基于spring-security-oauth2-實(shí)現(xiàn)單點(diǎn)登錄 文章代碼地址:鏈接描述可以下載直接運(yùn)行,基于springboot2.1.5,springcloud Green...
閱讀 1836·2021-11-24 09:39
閱讀 1633·2021-11-16 11:54
閱讀 3587·2021-11-11 16:55
閱讀 1826·2021-10-14 09:43
閱讀 1507·2019-08-30 15:55
閱讀 1295·2019-08-30 15:54
閱讀 3484·2019-08-30 15:53
閱讀 1434·2019-08-30 14:18