Безопасный веб-Джерси 1.19 отдыха - PullRequest
0 голосов
/ 01 октября 2018

Я не могу создать Фильтр для своего проекта, чтобы каждый мог использовать его, все, что я нашел несколько примеров для Джерси 2.0, но когда я пытаюсь использовать в моем проекте, не работает вообще.Я не могу понять, как перехватить службу отдыха на URL с Джерси 1.19.Я работаю над этим проектом около месяца, поэтому я отказываюсь обновиться до джерси 2.0, если это не будет легко.Сервис находится в облаке прямо сейчас.https://pets2018.herokuapp.com/controllers.jsp

package com.service.controllers;

import java.util.List;
import java.util.StringTokenizer;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.Provider;
import com.service.exceptions.WebApplicationException;
import com.sun.jersey.core.util.Base64;
import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerRequestFilter;

@Provider
public class AuthController implements ContainerRequestFilter  {

private static final String AUTHORIZATION_HEADER_KEY = "Authorization";
private static final String AUTHORIZATION_HEADER_PREFIX = "Basic ";
private static final String CONTROLLERS_PREFIX = "test";

@Override
public ContainerRequest filter(ContainerRequest requestContext) {

if(requestContext.getPath().contains(CONTROLLERS_PREFIX)) {
    System.out.println(requestContext.getBaseUri().getPath());
    List<String> authHeader = requestContext.getRequestHeader(AUTHORIZATION_HEADER_KEY);
    if(authHeader != null && authHeader.size() > 0) {
        String authToken = authHeader.get(0);
        authToken = authToken.replaceFirst(AUTHORIZATION_HEADER_PREFIX, "");
        String decodedString = Base64.base64Decode(authToken);
        StringTokenizer tokenizer = new StringTokenizer(decodedString, ":");
        String username = tokenizer.nextToken();
        String password = tokenizer.nextToken();

        if("username".equals(username) && "password".equals(password)) {

        }
    }else {
        Response unauthorizedStatus = Response.status(Response.Status.UNAUTHORIZED).entity("No puede ingresar a este servicio").build();
        try {
            throw new WebApplicationException(unauthorizedStatus);
        } catch (WebApplicationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}else {
System.out.println("No se encuentra la palabra indicada en el URI requerido");
}
    return null;
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...