Можно ли использовать аннотацию RolesAllowed в Tomcat 8? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть маленький API для отдыха, использующий трикотаж, как этот

@Path("/noticias")
@DeclareRoles({"user"})
public class ServicioNoticias {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @RolesAllowed({ "user" })
    public List<Noticia> getNoticias() {

        List<Noticia> noticias = new ArrayList<Noticia>();
        noticias.add(new Noticia("1", "noticia1"));
        noticias.add(new Noticia("2", "noticia2"));

        return noticias;

    }


}

Я использовал базовую аутентификацию для доступа к ней, сначала добавил пользователей и роли в пользователей tomcat.xml

<role rolename="administrador" />
<role rolename="user" />
<user username="cecilio" password="cecilio" roles="administrador" />
<user username="yhorell" password="hello" roles="user" />

и в файле web.xml я объявляю это

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>JaxRxJackson</display-name>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>recurso noticias</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>GET</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name>administrador</role-name>
            <role-name>user</role-name>
        </auth-constraint>
    </security-constraint>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>jaxrs</realm-name>
    </login-config>

    <security-role>
        <role-name>administrador</role-name>
    </security-role>

    <security-role>
        <role-name>user</role-name>
    </security-role>
</web-app>

Моя идея - отменить метод getNoticias, который будет использоваться только пользовательской ролью, так что онЭто возможно?

Примечание: базовая аутентификация работает нормально, но я также хочу отфильтровать доступ, используя @RolesAllowed.

Версия Tomcat: 8.0 Реализация Jax rs: Джерси

Спасибо ...

...