真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用SpringBoot快速搭建一個項目

今天小編給大家分享一下怎么用Spring Boot快速搭建一個項目的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

在成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報的無錫營銷推廣。創(chuàng)新互聯(lián)建站專業(yè)成都網(wǎng)站建設(shè)十年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。

Spring Security 初識

Spring Security是為基于Spring的應(yīng)用程序提供聲明式安全保護的安全性框架。Spring Security提供了完整的安全性解決方案,它能夠在Web請求級別和方法調(diào)用級別處理身份認證和授權(quán)。因為基于Spring框架,所以Spring Security充分利用了依賴注入(dependency injection,DI)和面向切面的技術(shù)。Spring Security借助一系列Servlet Filter來提供各種安全性功能。你可能會想,這是否意味著我們需要在web.xml或WebApplicationInitializer中配置多個Filter呢?實際上,借助于Spring的小技巧,我們只需配置一個Filter就可以了。

DelegatingFilterProxy是一個特殊的Servlet Filter,它本身所做的工作并不多。只是將工作委托給一個javax.servlet.Filter實
現(xiàn)類,這個實現(xiàn)類作為一個注冊在Spring應(yīng)用的上下文中。如果你希望借助WebApplicationInitializer以Java的方式來配置Delegating-FilterProxy的話,那么我們所需要做的就是創(chuàng)建一個擴展的新類AbstractSecurityWebApplicationInitializer實現(xiàn)了WebApplication-Initializer,因此Spring會發(fā)現(xiàn)它,并用它在Web容器中注冊DelegatingFilterProxy。盡管我們可以重載它的appendFilters()或insertFilters()方法來注冊自己選擇的Filter,但是要注冊DelegatingFilterProxy的話,我們并不需要重載任何方法。

接下來我用Spring Boot 快速搭建一個項目進行演示。只需要新建一個Controller即可:

/**
 * @author itguang
 * @create
@RestController
public class HelloController

    @RequestMapping("hello")
    public String hello() {

        return "hello Spring Security";
    }
}

然后我們啟動項目,訪問 http://localhost/hello (注意這里我把啟動端口修改為了80,文章最后會有源碼地址,可供參考)

然后就會看到我們返回的 hello Spring Security 字符串。

下面我們添加Spring Security的依賴


    org.springframework.boot
    spring-boot-starter-security

開始進行安全相關(guān)的配置。

1,過濾web請求

/**
 * @author itguang
 * @create
public class SecurityWebInitializer extends AbstractSecurityWebApplicationInitializer

2,編寫簡單的安全性配置,啟用Spring Security

/**
 * @author itguang
 * @create
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

接下來訪問 : http://localhost/hello,頁面會自動跳轉(zhuǎn)到 http://localhost/login 讓我們登陸.

奇怪我們并沒有配置登陸頁,怎么會讓我們登陸呢?其實這就是 Spring Security 為我們做的安全驗證,如下圖:

用戶名默認是user,密碼我們需要在項目的啟動日志中去查看,找到這一行 Using default security password: 236f5782-6076-414e-b182-78ce138a8cc9
把密碼填上去,注意每次啟動的密碼都不一樣,是隨機的。然后我們點擊login,頁面就跳轉(zhuǎn)到了 http://localhost/hello 頁面,并且顯示出我們在controller里面返回的 hello Spring Security

上面兩步我們就完成了最簡單的Spring Security 相關(guān)配置,但是很可惜,這并不是我們想要的結(jié)果。

我們想要指定web安全相關(guān)的細節(jié)。這需要我們通過重載 WebSecurityConfigurerAdapter 中的一個或多個方法來實現(xiàn)。
我們就可以通過重載 WebSecurityConfigureAdapter 的三個 configure() 方法,來配置web安全性的細節(jié)。這個過程會使用傳遞進來的餓參數(shù)設(shè)置行為。

  • configure(WebSecurity) 通過重載,配置Spring Security的Filter鏈。

  • configure(HttpSecurity) 通過重載,配置如何通過攔截器保護請求。

  • configure(AuthenticationManagerBuiler) 通過重在配置user-detail 服務(wù)。

我們在回過頭看看之前寫的 SecurityConfig 類,并沒有重寫任何一個方法,這也就解釋了為什么應(yīng)用現(xiàn)在是被鎖定的。我們可以查看 WebSecurityConfigurerAdapter 的源碼:

protected void configure(HttpSecurity http) throws Exception {
        logger.debug("Using default configure(HttpSecurity). If subclassed this will potentially override subclass configure(HttpSecurity).");

        http
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .formLogin().and()
            .httpBasic();
    }

這個簡單的默認配置指定了該如何保護HTTP請求,以及客戶端認證
用戶的方案。通過調(diào)用authorizeRequests()和
anyRequest().authenticated()就會要求所有進入應(yīng)用的
HTTP請求都要進行認證。它也配置Spring Security支持基于表單的登
錄以及HTTP Basic方式的認證。

我們把光標放在 formLogin 和 httpBasic 上,可以看到這兩個注釋如下:

//The configuration below demonstrates customizing the defaults.
       @Configuration
       @EnableWebSecurity
       public class FormLoginSecurityConfig extends WebSecurityConfigurerAdapter

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().antMatchers("/**").hasRole("USER").and().formLogin()
                    .usernameParameter("username") // default is username
                    .passwordParameter("password") // default is password
                    .loginPage("/authentication/login") // default is /login with an HTTP get
                    .failureUrl("/authentication/login?failed") // default is /login?error
                    .loginProcessingUrl("/authentication/login/process"); // default is /login
                                                                            // with an HTTP
                                                                            // post
        }

        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication().withUser("user").password("password").roles("USER");
        }
       }

可以看到,默認配置了沒有授權(quán)時的登陸頁面和鞥失敗時的錯誤頁面,這也告訴我們,如果想自定義登錄頁可以重載這個方法。

@Configuration
       @EnableWebSecurity
       public class HttpBasicSecurityConfig extends WebSecurityConfigurerAdapter

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().antMatchers("/**").hasRole("USER").and().httpBasic();
        }

        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication().withUser("user").password("password").roles("USER");
        }
}

上面這個注釋的示例演示了如何為應(yīng)用程序配置HTTP基本身份驗證。默認的域是“Spring Security Application”,但是可以使用它進行自定義

因此:為了讓讓 Spring Security 滿足我們自己的應(yīng)用需求,還需要添加一點配置,具體來講我們需要:

  • 1 配置用戶存儲

  • 2 指定哪些請求需要認證,哪些請求不需要認證,以及所需要的權(quán)限。

  • 3 提供一個自定義的登陸頁面,代替原來簡單的登錄頁面

以上就是“怎么用Spring Boot快速搭建一個項目”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當前標題:怎么用SpringBoot快速搭建一個項目
文章轉(zhuǎn)載:http://weahome.cn/article/pesisj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部