欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot與spring security的結(jié)合的示例

 更新時(shí)間:2018年03月27日 08:36:30   作者:數(shù)齊  
這篇文章主要介紹了SpringBoot與spring security的結(jié)合的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

權(quán)限控制,也是我們?cè)偃粘i_(kāi)發(fā)中經(jīng)常遇到的場(chǎng)景,需要根據(jù)用戶的角色決定是否可以看到某個(gè)資源。目前,市面上此類框架主要有shiro與我們今天要講到的spring security。關(guān)于權(quán)限的控制有復(fù)雜的控制,例如幾乎每個(gè)公司都有單點(diǎn)登錄系統(tǒng),根據(jù)用戶名來(lái)到數(shù)據(jù)庫(kù)中拿到對(duì)應(yīng)的權(quán)限,在展示該權(quán)限下能看到的資源。還有一種就是簡(jiǎn)單的控制,也就是我們今天所要提到的。將賬號(hào),密碼,角色配置到代碼中,也可以進(jìn)行簡(jiǎn)單的控制,缺點(diǎn)不言而喻,擴(kuò)展性不好,只有固定的賬號(hào),但是作為演示還是夠用的。

好了廢話不多說(shuō),上pom

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

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

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

spring-boot-starter-security里面包裝了spring security所需要的依賴。不需要我們一個(gè)個(gè)的配置,簡(jiǎn)化了我們的操作,節(jié)省了我們的時(shí)間,不得不說(shuō),這些企業(yè)級(jí)框架考慮的就是很周到,如果我們自己添加jar,可能會(huì)因?yàn)榘姹局g的不兼容而爆出各種問(wèn)題,這都是題外話,贊嘆一下,我們繼續(xù)??聪屡渲妙?/p>

package com.shuqi;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;


@EnableWebSecurity
public class SecurityConfig {

  @Configuration
  public static class WebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
      http.csrf().disable();
      http
          .authorizeRequests()
          .antMatchers(
              "/index"
          ).hasRole("ADMIN")
          .anyRequest().permitAll()
          .and()
          .httpBasic()
      ;
    }
  }
}

這段配置翻譯成中文是:對(duì)于訪問(wèn)/index這個(gè)鏈接需要ADMIN權(quán)限,其他的全都都允許。有的時(shí)候我們只會(huì)注意代碼,其實(shí)這個(gè)注解@EnableWebSecurity會(huì)重要更多,因?yàn)樗莝pring security的開(kāi)始,他引入了諸多的配置類,才使得security生效。我們?cè)O(shè)置了ADMIN權(quán)限,但是沒(méi)有設(shè)置ADMIN權(quán)限對(duì)應(yīng)的用戶名密碼,所以看下配置文件

security:
 user:
  name: root
  password: root
  role: ADMIN

配置都差不多了,看一眼我們的Controller

package com.shuqi.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
  @RequestMapping("/index")
  public String index(){
    return "hello world index";
  }

  @RequestMapping("/index1")
  public String index1(){
    return "hello world index1";
  }
}

一個(gè)被攔截的/index,一個(gè)不會(huì)被攔截的/index1,看下區(qū)別。啟動(dòng)項(xiàng)目,訪問(wèn)/index

可以看到已經(jīng)加了訪問(wèn)控制,輸入配置的root,root

可以看到結(jié)果

輸入/index1可以直接看到結(jié)果


說(shuō)明我們的配置生效了,spring security確實(shí)幫助我們做到了訪問(wèn)的控制。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringMVC中Json數(shù)據(jù)格式轉(zhuǎn)換

    SpringMVC中Json數(shù)據(jù)格式轉(zhuǎn)換

    本文主要介紹了SpringMVC中Json數(shù)據(jù)格式轉(zhuǎn)換的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • java編程abstract類和方法詳解

    java編程abstract類和方法詳解

    這篇文章主要介紹了java編程abstract類和方法詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • spring拓展之如何定義自己的namespace

    spring拓展之如何定義自己的namespace

    這篇文章主要介紹了spring拓展之如何定義自己的namespace方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 利用Java生成帶有文字的二維碼

    利用Java生成帶有文字的二維碼

    二維碼在我們現(xiàn)在的生活中可謂是隨處可見(jiàn),這篇文章主要是介紹如何利用Java生成帶有文字的二維碼,對(duì)大家學(xué)習(xí)Java具有一定的參考借鑒價(jià)值。有需要的朋友們下面來(lái)一起看看吧。
    2016-09-09
  • Java長(zhǎng)度不足左位補(bǔ)0的3種實(shí)現(xiàn)方法

    Java長(zhǎng)度不足左位補(bǔ)0的3種實(shí)現(xiàn)方法

    這篇文章主要介紹了Java長(zhǎng)度不足左位補(bǔ)0的3種實(shí)現(xiàn)方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java中easypoi導(dǎo)入excel文件列名相同的處理方案

    Java中easypoi導(dǎo)入excel文件列名相同的處理方案

    這篇文章主要介紹了Java中easypoi導(dǎo)入excel文件列名相同的處理方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java打jar包與找不到依賴包的問(wèn)題

    java打jar包與找不到依賴包的問(wèn)題

    這篇文章主要介紹了java打jar包與找不到依賴包的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 關(guān)于MyBatis各種SQL操作詳解

    關(guān)于MyBatis各種SQL操作詳解

    這篇文章主要介紹了關(guān)于MyBatis各種SQL操作詳解,MyBatis 是一款優(yōu)秀的半自動(dòng)的ORM持久層框架,它支持自定義 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射,需要的朋友可以參考下
    2023-05-05
  • 微服務(wù)架構(gòu)設(shè)計(jì)RocketMQ進(jìn)階事務(wù)消息原理詳解

    微服務(wù)架構(gòu)設(shè)計(jì)RocketMQ進(jìn)階事務(wù)消息原理詳解

    這篇文章主要介紹了為大家介紹了微服務(wù)架構(gòu)中RocketMQ進(jìn)階層面事務(wù)消息的原理詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助
    2021-10-10
  • Java切割字符串的踩坑實(shí)戰(zhàn)記錄

    Java切割字符串的踩坑實(shí)戰(zhàn)記錄

    最近在項(xiàng)目中使用了java中的分割字符串,踩了一個(gè)坑,充分了展示了自己對(duì)java底層的認(rèn)知有很多的不足和欠缺,下面這篇文章主要給大家介紹了關(guān)于Java切割字符串的踩坑實(shí)戰(zhàn)記錄,需要的朋友可以參考下
    2022-11-11

最新評(píng)論