SpringBoot 와 spring security 의 결합 예시

권한 통 제 는 우리 가 일상적인 개발 에서 자주 만 나 는 장면 이기 때문에 사용자 의 역할 에 따라 특정한 자원 을 볼 수 있 는 지 여 부 를 결정 해 야 한다.현재 시장 에 서 는 주로 shiro 와 우리 가 오늘 말 할 spring security 가 있다.권한 에 대한 통 제 는 복잡 한 통제 가 있 습 니 다.예 를 들 어 거의 모든 회사 가 단일 로그 인 시스템 을 가지 고 사용자 이름 에 따라 데이터 베이스 에 와 서 해당 하 는 권한 을 얻 고 이 권한 에서 볼 수 있 는 자원 을 보 여 줍 니 다.또 하 나 는 간단 한 통제,즉 우리 가 오늘 언급 하고 자 하 는 것 이다.계 정,비밀번호,캐릭터 를 코드 에 설정 하 는 것 도 간단 한 통 제 를 할 수 있 습 니 다.단점 은 말 하지 않 아 도 알 수 있 습 니 다.확장 성 이 좋 지 않 고 고정된 계 정 만 있 지만 프 리 젠 테 이 션 으로 도 충분 합 니 다.
됐어,쓸데없는 소리 하지 말고 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 에 필요 한 의존 도가 포장 되 어 있 습 니 다.우리 가 하나하나 배치 할 필요 가 없고 우리 의 조작 을 간소화 하 며 우리 의 시간 을 절약 했다.이런 기업 급 구 조 는 매우 주도면밀 하 게 고려 한 것 이다.만약 에 우리 가 jar 를 추가 하면 버 전 간 의 불 균형 으로 인해 여러 가지 문제 가 발생 할 수 있다.이것 은 모두 주제 밖의 이야기 이 고 감탄 하 며 우 리 는 계속 할 것 이다.설정 클래스 보기

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()
      ;
    }
  }
}
이 설정 은 중국어 로 번역 되 었 습 니 다./index 에 접근 하려 면 ADMIN 권한 이 필요 합 니 다.다른 것 은 모두 허용 합 니 다.때때로 우 리 는 코드 만 주의 할 수 있 습 니 다.사실 이 주 해 는@EnableWebSecurity 가 더 중요 합 니 다.그 는 spring security 의 시작 이기 때문에 그 는 많은 설정 류 를 도입 해서 security 가 효력 을 발생 합 니 다.저 희 는 ADMIN 권한 을 설 정 했 지만 ADMIN 권한 에 대응 하 는 사용자 이름 비밀 번 호 를 설정 하지 않 았 기 때문에 설정 파일 을 보십시오.

security:
 user:
  name: root
  password: root
  role: ADMIN
설정 이 얼마 남지 않 았 습 니 다.저희 컨트롤 러 를 보 세 요.

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";
  }
}

차단 되 지 않 는/index,차단 되 지 않 는/index 1,차이 점 을 보 세 요.프로젝트 시작,접근/index

접근 제어 가 추가 되 었 습 니 다.설정 한 루트,루트 를 입력 하 십시오.
결 과 를 볼 수 있 습 니 다.

/index 1 을 입력 하면 결 과 를 직접 볼 수 있 습 니 다.

우리 의 설정 이 유효 하 다 는 것 을 설명 합 니 다.spring security 는 우리 가 방문 통 제 를 하 는 데 도움 을 주 었 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기