spring-security關(guān)閉登錄框的實現(xiàn)示例
事情要從同事的一個項目說起,項目中需要集成公司的單點登錄系統(tǒng),但是無論如何都無法跳轉(zhuǎn)到正常的登錄頁面。相反,卻始終跳轉(zhuǎn)到另外一個登錄頁面。
但是代碼卻非常簡單,簡化一下
@Controllerpublic class SecurityTestController { @GetMapping('/myLogin') public String login() { return 'login'; } @GetMapping('/') public String homePage() { return 'homePage'; }}
發(fā)現(xiàn)無論是'/myLogin'還是'/'都繞不過登錄,即使打了斷點也進(jìn)入不了兩個方法。
由于之前沒有接觸過securtiy,還以為是公司另外一個登錄系統(tǒng),讓同事輸入公司域賬戶和密碼,卻怎么也無法進(jìn)入。最后還是同事通過搜索'please sign in' + 'spring'的關(guān)鍵詞才知道這個是securtiy。
那既然知道是spring boot 的security,那要如何登錄呢,以及要如何關(guān)閉這個登錄框呢?
第一個問題,如何登錄?
我們從啟動日志中,可以看到有一條這樣的日志
所以,這個就是登錄用到的密碼。那用戶名是什么呢? 這個可以進(jìn)入UserDetailsServiceAutoConfiguration看看究竟。
然后繼續(xù)進(jìn)入SecurityProperties.User看看。
可以從代碼中看到,如果不做任何配置,Spring Security的User信息,name是user,而paasword是UUID,這個會在啟動日志中打印。
在登錄框中,輸入'user' + 日志中的密碼,即可正常登錄。
定義用戶名和密碼
對于登錄名和密碼,可以通過在application.properties文件中指定
spring.security.user.name=adminspring.security.user.password=admin
第二個問題,有沒有辦法關(guān)閉登錄?
關(guān)閉自動配置
當(dāng)我們僅僅引入了Spring Securtiy的Starter,就發(fā)現(xiàn)訪問會存在輸入框。一定是SpringBoot的autoConfig幫我們配置了一些東西。那么可以通過關(guān)閉Securtiy的autoConfig關(guān)閉登錄。
可以在啟動類上添加
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
或者是在application.properties文件中添加
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration
注意到我的項目中,除了SecurityAutoConfiguration被排除掉外,還有ManagementWebSecurityAutonConfiguration被排除,這個類是Actuator引入的。如果項目中有使用Actuator,那么就需要同時排除掉ManagementWebSecurityAutonConfiguration。
定制WebSecurityConfigureAdapter關(guān)閉登錄框
@Componentpublic class MySecurtiyConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { // 正常配置其他安全相關(guān)的內(nèi)容 // 將登錄框關(guān)閉 http.formLogin().disable(); }}
這里推薦使用第二種方式,因為引入Spring-security肯定是有業(yè)務(wù)需要的,可以定制化登錄校驗信息。
到此這篇關(guān)于spring-security關(guān)閉登錄框的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)spring security關(guān)閉登錄框內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 利用promise及參數(shù)解構(gòu)封裝ajax請求的方法2. Nginx+php配置文件及原理解析3. windows服務(wù)器使用IIS時thinkphp搜索中文無效問題4. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法5. JSP數(shù)據(jù)交互實現(xiàn)過程解析6. 淺談python出錯時traceback的解讀7. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解8. Ajax實現(xiàn)表格中信息不刷新頁面進(jìn)行更新數(shù)據(jù)9. Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼10. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向
