2013-08-27 3 views
0

JAX-RS (Jersey + Jackson, JSON 제작 용 Jackson)를 사용하여 RESTful 웹 서비스를 만들고 싶습니다.글래스 피 다이제스트 인증

저는 Glassfish 4.0을 서버로, 넷빈을 IDE로 사용하고 있습니다.

webservices는 정상적으로 작동하지만 현재 인증이 필요하지 않습니다.

이제는 암호를 해시하는 다이제스트 인증을 고려하므로 일반 텍스트로 암호를 전송할 필요가 없습니다. 또한 https를 사용하여 데이터가 암호화되도록하고 싶습니다.

나는 이론을 이해했다. 하지만 난 글래스 피시와 Netbeans에서 어떻게 할 수 있는지 모르겠다.

글래스 피시의 관리 콘솔에서 뭔가를하는 일부 자습서를 보았습니다. 하지만 넷빈에서만 그렇게 할 수있는 방법이 없습니까? 응용 프로그램을 배포 할 때 만들어지는 netbeans 영역을 정의 할 수 있습니까?

렐름 등을 생성 한 후. 내 모든 리소스 (WebServices)에 인증 된 "user"-Object를 삽입해야한다고 생각합니다. 그러나 나는 전에 이것을 한 적이 없다. 그리고 내가 잘 이해할 수 있도록 digbe 인증을 설정하고 netbeans를 netbeans로 주입 할 수있는 방법을 설명하는 좋은 자습서를 찾고 있습니다.

답변

5

참고 : Netbeans를 사용하여 컨테이너 인증을 구성하는 것과 관련하여 궁금한 점은 제 대답에 포함되지 않습니다.

서버 측만 구현해야한다는 점을 이해합니다. 클라이언트 부분은 필요하지 않습니다.

서버에는 해결해야 할 두 부분 인 인증 및 권한 부여가 있습니다. 당신이 HTTP 기본 인증, HTTP 다이제스트 인증 또는 클라이언트 인증서 인증을 사용하기로 결정한 경우

인증

, 당신은 글래스 피시는 인증을 수행 할 수 있도록해야합니다. 전송에 SSL을 사용하려면 HTTP 기본 인증을 사용하는 것이 좋습니다. 암호는 일반 텍스트 형식으로 전송되지만 통신은 암호화됩니다. 이점은이 인증이 클라이언트에 대해 구현하기가 더 쉽다는 것입니다. HTTP 기본 인증을 정의하려면 응용 프로그램의 web.xml을 사용하고 "security-constraint"및 "login-config"태그를 정의 할 수 있습니다. 예 :

<security-constraint> 
    <web-resource-collection> 
     <url-pattern>/rest/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>customer</role-name> 
     <role-name>admin</role-name> 
    </auth-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>my-defaul-realm</realm-name> 
</login-config> 

이것은 글래스 피쉬 전용 솔루션이 아닙니다. 다른 응용 프로그램 서버에서도 작동합니다. 컨테이너가 인증을 수행하며,이 정보는 JAX-RS 애플리케이션에서 javax.ws.rs.core.SecurityContext으로 액세스 할 수 있습니다.

인증

이제, 사용자 교장을 추출 사용자 역할을 확인하는 SecurityContext에 사용할 수 있습니다

등 또한, 저지 기능은 주석 @RolesAllowed ("...")과를 사용하여 제공 @PermitAll 리소스 (javax.annotation.security 패키지의 주석)에 대한 액세스를 정의합니다. 이러한 주석 처리를 가능하게하려면 RolesAllowedDynamicFeature을 Jersey에 등록해야합니다.

@RolesAllowed("admin") 
@GET 
public String get() { 
    return "admin private resource"; 
} 

이 역할 "관리자"만 사용자가 GET() 메소드를 실행 할 수 있다는 것을하게됩니다 : 당신은 예를 들어 다음과 같은 리소스 방법을 정의 할 수 있습니다. https://jersey.java.net/documentation/latest/security.html

:

좀 더 세부 사항 (보안 장)의 저지 문서를 확인하실 수 있습니다