2016-04-21 4 views
0

Мои пользователи подписываются на мой сайт, используя базовую аутентификацию. Есть ли способ, что я могу использовать проверку подлинности пользователей деталь, чтобы действовать в качестве идентифицирующего для URLConnection? ....Использовать аутентификацию пользователей для URLConnection в JavaEE

Что-то вроде

@get 
@Path("/rest/getInfo) 
public String giveMeTheResult(){ 

    URLConnection conn = new URL("/service/info"); 
    Authenticator.setDefault(getCurrentUserAuthentication()); 

    return (String) conn.getContent(); 

} 

Как сделать getCurrentuserAuthentication части?

Спасибо.

+0

См. Https://stackoverflow.com/help/someone-answers – c0der

ответ

1

Потому что это базовый auth, это не должно быть слишком плохо. Я не сделал этого, но я думаю, что вы могли бы сделать что-то вроде:

public String giveMeTheResult(@Context HttpServletRequest request){ 

    String authHeader = request.getHeader("Authorization"); 
    String[] authChunks = authHeader.split(" "); 
    String decodedAuth = new String(Base64.getDecoder().decode(authChunks[1])); 
    String[] userInfo = decodedAuth.split(":"); 
    // user name is userInfo[0], password is userInfo[1] 

    // not convinced that this is a good idea because it sets it for all 
    Authenticator.setDefault(new PasswordAuthentication(userInfo[0], 
          userInfo[1].toCharArray()); 

    return (String) conn.getContent(); 
} 

Но предупреждение - это совершенно непроверенные и не проверяет никаких ошибок!