1. 程式人生 > 程式設計 >Java反轉陣列輸出例項程式碼

Java反轉陣列輸出例項程式碼

技術標籤:springboot

簡介

市面上存在比較有名的:Shiro,Spring Security !

一般來說,常見的安全管理技術棧的組合是這樣的:

  • SSM + Shiro
  • Spring Boot/Spring Cloud + Spring Security

spring Security官網

專案建立

1. 新建springboot專案,增加web和thymeleay模組

2. 匯入相關靜態資源

3. controller跳轉

@Controller
public class RouterController {

    @RequestMapping("/index"
) public String index(){ return "index"; } @RequestMapping("/toLogin") public String toLogin(){ return "views/login"; } @RequestMapping("/level1/{id}") public String level1(@PathVariable("id") int id){ return
"views/level1/"+id; } @RequestMapping("/level2/{id}") public String level2(@PathVariable("id") int id){ return "views/level2/"+id; } @RequestMapping("/level3/{id}") public String level3(@PathVariable("id") int id)
{ return "views/level3/"+id; } }

4. 測試

誰都可以訪問該網站的任意模組,我們使用 Spring Security 增加上認證和授權的功能進行少量的配置,即可實現強大的安全管理!

springSecurity學習

依賴

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-security</artifactId>
</dependency>

1. spring security實現認證

身份驗證通常通過使用者名稱和密碼完成,有時與身份驗證因素結合使用

@EnableWebSecurity    // 開啟WebSecurity模式
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    //授權
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //首頁所有人可以訪問,功能頁只能有許可權的可以訪問
        //請求授權規則
        http.authorizeRequests()
                .antMatchers("/").permitAll()
                .antMatchers("/level1/**").hasRole("vip1")
                .antMatchers("/level2/**").hasRole("vip2")
                .antMatchers("/level3/**").hasRole("vip3");

        //沒有許可權預設會去登陸頁面http.formLogin()預設走他自己的路徑,  http.formLogin().loginPage("/toLogin");可以自定義
        http.formLogin().loginPage("/toLogin");

        http.logout().logoutSuccessUrl("/index");

        //開啟記住我, cokkie預設儲存兩週 , 在login.html有個checkbox remember
        http.rememberMe().rememberMeParameter("remember");

    }
}

2. spring security實現授權

授予您訪問資源(如資訊,檔案,資料庫,資金,位置,幾乎任何內容)的完全許可權。

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    //passwordEncoder:密碼編碼
    //在spring security5.0+中新增了很多加密方法
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        //從記憶體中讀,也可以從資料庫中讀取  auth.jdbcAuthentication()

        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("wang").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3")
                .and()
                .withUser("root").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2","vip3")
                .and()
                .withUser("xiaoman").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");
    }
}

更多功能

狂神springsecurity系列