Я реализую безопасность в своем веб-сервисе RESTful, и я думаю о создании фильтра, который проверяет, является ли заголовок авторизации действительным или нет, и эта проверка выполняется путем отправки токен третьей стороне. Если токен действителен, конечная точка третьей стороны должна отправить мне ответ, содержащий информацию об истечении срока действия маркера, идентификатора клиента, области действия и других данных. Логика, то это:Сервлет фильтр «возвращающий» объект для последующего использования
@Override
public void doFilter(
final ServletRequest request,
final ServletResponse response,
final FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
header = req.getHeader("Authorization");
EndpointResponse eResponse = Endpoint.validate(header);
if(eResponse.valid())){
chain.doFilter(...);
return eResponse; //or equivalent
}else{
HttpServletResponse res = HttpServletResponse(response);
res.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
...
}
}
Затем в классе DAO, я буду использовать eResponse как этот
public final class DAO{
public void checks(){
if(eResponse.scope() == "ADMIN"){
...
}else{
...
}
}
}
Есть ли способ, чтобы ввести или вернуть объект после того, как фильтр делает подтверждение? Надеюсь, без использования весны или спящего режима, поскольку я не могу использовать их на своей работе.
-EDIT-
Путь я доступ к дао будет так
@Path("")
public class CertificationService {
@GET
@Produces(CertificationApplication.SUPPORTED_REPRESENTATIONS)
@Path(CertificationConstants.URL_PATH)
public Response getCertificationByUpId(String upId) throws CertificationException {
ResponseBuilder response;
try{
response = Response.ok(DAO.findCertificationByUPID(upId));
} catch (CertificationException e) {
response = handleException(e);
}
return response.build();
}
}
Метод findCertificationByUPID бы назвать чеки() метод, который я заявил выше.
@JigarJoshi OP вопрос совсем нет об ошибке используя колонка сравнение. Он спрашивает, хороша ли его логика и как он должен это делать. – Alex
мой плохой, вернул его –
, вы можете передать его как аргумент DAO, откуда вы его назовете? –