기본 인증을 가진 간단한 REST Applikation이 있습니다. 인증이 작동하며 POST/GET 데이터를 보낼 수 있습니다. 인증 후 컨트롤러에 접속하려면 내 컨트롤러에서 사용하려면 사용자 이름/비밀번호 이 필요합니다. 헤드 등에서 얻을 수 있습니까? 아니면 POST/GET 사용자 이름/비밀번호로 데이터를 가져와 인증을 무시해야합니까? 재사용 할 수 있다고 생각했습니다.스프링 REST 기본 인증 필요 사용자 ID
ThX 당신의 도움.
기본 인증을 가진 간단한 REST Applikation이 있습니다. 인증이 작동하며 POST/GET 데이터를 보낼 수 있습니다. 인증 후 컨트롤러에 접속하려면 내 컨트롤러에서 사용하려면 사용자 이름/비밀번호 이 필요합니다. 헤드 등에서 얻을 수 있습니까? 아니면 POST/GET 사용자 이름/비밀번호로 데이터를 가져와 인증을 무시해야합니까? 재사용 할 수 있다고 생각했습니다.스프링 REST 기본 인증 필요 사용자 ID
ThX 당신의 도움.
REST 메서드에서 @RequestHeader 주석을 사용할 수 있습니다.
또 하나의 옵션은 HttpServletRequest의 컨트롤러에 autowire가 될 수있는, 정말 간단했다 후 getHeader 메소드를 사용하여 헤더 데이터를 얻을 수 (eg)
thx 개체를 얻을 수 있지만 여전히 HttpAuthentication * 스크래치 밖으로 사용자 및 패스를 얻을 수 없습니다 * – user3756429
클라이언트 쪽에서 REST 호출을 수행하는 코드를 붙여도 되겠습니까? –
OK, 당신의 컨트롤러에서이 작업을 수행 할 필요가 사용하는 것입니다 : SecurityContextHolder.getContext().getAuthentication().getName();
이렇게하면 내 사용자 이름을 얻었습니다. 비밀 번호는 버전 3.1의 null couse지만 나는 그것을 필요 없을 것 같아요. 저를 도우려고 모든 THX :
protected HttpHeaders getAuthentificatedRequestHeaders(String aUsername, String aPassword) {
HttpAuthentication authHeader = new HttpBasicAuthentication(aUsername, aPassword);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setAuthorization(authHeader);
List<MediaType> media = new ArrayList<MediaType>();
media.add(MediaType.APPLICATION_JSON);
httpHeaders.setAccept(media);
return httpHeaders;
}
공공 UserMdl getUserById (긴 ID) 는 {
final String url = getResourceUrl("user/{id}");
HttpEntity<?> requestEntity = new HttpEntity<Object>(getAuthentificatedRequestHeaders(Config.REST_USERNAME, Config.REST_PASSWORD));
RestTemplate restTemplate = getRestTemplatWithJsonConverter();
ResponseEntity<UserMdl> response = restTemplate.exchange(url,HttpMethod.GET, requestEntity, UserMdl.class, id);
UserMdl user = response.getBody();
return user;
}
이 내 안드로이드 클라이언트에서 사용하는 몇 가지 코드를 인도 표준시. "getAuthentificatedRequestHeades (..)"메소드는 추상 클래스의 일부이며 모든 요청에 사용됩니다. 다른 방법은 코드를 사용하는 것입니다 ..
HttpRequest 객체를 검사 해 보셨습니까? –
아니, 나는 HttpRequest의 인스턴스를 어떻게 호출 할까? 내 컨트롤러는 주석에 의해 등록 된 간단한 클래스입니다. – user3756429
오클라호마에서 HttpRequest를 얻었습니다. 데이터를 가져 오려고 노력할 것입니다. – user3756429