2017-10-01 2 views
0

안녕하세요 저는 봄과 봄에 새로운 보안입니다. 현재 저는 봄에 나머지 API를 사용하고 있습니다. 봄마다 휴식 API를 제공합니다. 나머지 api는 상태가 없으므로 api를 종료하는 세션을 만들 수 없습니다. 우리가 그렇게한다면 무국적이기 때문에 나머지 디자인에 반대합니다. 그래서 내 질문은 할 수있다 우리는 휴식에 서버 쪽에서 사용자의 상태를 결코 유지하지 않습니까?우리는 클라이언트 측 그것을 유지할 수 있습니까 ?? 방법?? 스프링 기본 보안에 로그인하여 현재 사용자에게 원칙을 적용합니다. 스프링리스 인증의 경우. 그래서 휴식 API의 경우는 모두 현재 로그인 한 사용자입니까?. spring rest API가 stateless이면 스프링 보안이 현재 로그인 한 사용자를 유지하는 방법. 나는 토큰 기반 인증을 사용하는 스프링에 대해 약간의 블록을 읽었다. 여기서 사용자 명과 패스워드를 보낼 수있다. 요청할 때마다 토큰을 보내고 현재 요청을 보내는 사용자를 알 수있다. 토큰은 쿠키에 저장됩니다. 따라서 쿠키는 클라이언트 측에 저장됩니다. 이 경우 브라우저가 쿠키를 비활성화하면 로그인 한 사용자와 현재 사용자를 어떻게 인증 할 수 있습니까?스프링 레스트 API 및 스프링 기본 보안

+1

: 꽤 이론적 방금 통해 각 요청에 사용자 자격 증명 및 암호를 제공, 더 로그에 없다 'Authorization' 헤더. Spring 보안에서는'basicAuth()'지시자를 추가하여이 헤더의 사용 가능성에 대한 요청을 검사 할 수 있고 또한 그 값이 base64 값을 디코딩 할'Basic $ {base64enc (username : password)} '와 일치한다는 것을 지시 할 수있다. 사용자 세부 정보 서비스에서 사용자를 조회하고 액세스 할 수있는 보안 컨텍스트에 추가하기 위해 자격 증명을 분할하십시오. –

+0

그렇다면 스프링 보안이 모든 경우에 사용하기 위해 작동합니까? –

+0

은 필요에 따라 다릅니다. 이론적으로 나는 보통 사용자 지정 UserDetailsService와 AuthenticationProvider를 제공하는 경향이 있지만 실제 UserDetails 개체를 도메인 별 속성 및 설정으로 풍부하게 만드는 경향이 있습니다. –

답변

1

REST는 보안과 관련이 없으므로 데이터 조작에 관한 것이지 보안과 관련이 없습니다.

일반적으로 REST 요청과 함께 일종의 식별 정보를 제공합니다. 이것은 자격 증명, 토큰, 암호화 된 토큰 등의 집합 일 수 있습니다. 예를 들어, 토큰의 형식 중 하나는 JWT 토큰입니다. 그러나 이론 상으로는 다양한 형식으로 작업 할 수 있습니다.

스프링 보안은 다양한 흐름을 지원합니다. 때로는 여기 저기로 확장해야하고 일부 기능을 플러그인해야합니다. 그러나 무엇보다도 스프링 보안은 매우 확장 성이 뛰어나며 여러 다양한 흐름을 지원하도록 설계된 다양한 수준의 유연성을 허용합니다.

나는 그것이 이론적 인 대답의 일종 알고 있지만, 문제는 진정한 편안하고 환경에서

+0

REST는 클라이언트와 서버 간의 연결을 끊어서 프로토콜 정의에 따라 리소스 조작 작업을 처리하는 데 사용되는 HTTP와 같이 일반적으로 널리 사용되는 표준에 의존하여 아키텍처의 견고성을 향상시키는 데이터 조작에 관한 것이 아닙니다. –