TJWS и роли Разрешенная аннотация
Я хочу использовать TJWS для тестирования моего веб-приложения java с jboss. Я использую реализацию ContainerRequestFilter, которая позволяет мне указывать список ролей, которым разрешен доступ к методам в приложении (с помощью аннотации RolesAllowed).
Я не знаю, как "вставить" фильтр в мой крошечный сервер. Я пытался добавить это в список поставщиков, но не работает...
ниже код сервера:
public abstract class BaseServiceTest extends JpaTest {
private static final Integer PORT = 12345;
protected TJWSEmbeddedJaxrsServer server;
private static User adminUser;
private static User basicUser;
private static User racUser;
private String LOGIN_URL ="/users/login";
protected static String adminAuthentication;
protected static String basicAuthentication;
protected static String racAuthentication;
private UserDao userDao;
private String bindAddress = "localhost";
@Override
public void setUp() throws InitializationError {
super.setUp();
userDao = new UserDao();
server = new TJWSEmbeddedJaxrsServer();
server.setPort(PORT);
RestAssured.port = PORT;
server.setBindAddress(bindAddress);
server.setRootResourcePath("/");
for (Object endpoint : getEndpoints()) {
server.getDeployment().getResources().add(endpoint);
}
SecurityRequestFilter srFilter = new SecurityRequestFilter();
try {
FieldUtils.writeField(srFilter, "userDao", userDao, true);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
server.getDeployment().getProviders().add(srFilter);
server.start();
// other stuff...
}
и код фильтра:
@Provider
@Priority(Priorities.AUTHENTICATION)
public class SecurityRequestFilter implements ContainerRequestFilter {
@Context
UriInfo uriInfo;
@Inject
UserDao userDao;
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
//some filter stuff
...
}
Я надеюсь, что сделал свою точку зрения, несмотря на мой не очень хороший английский.