Comment faire l'authentification de base d'une ressource dans Dropwizard

Je crois que j'ai l'authentification de base de travail mais je ne suis pas sûr de la façon de protéger les ressources de sorte qu'ils ne peuvent être accessibles lorsque l'utilisateur s'est connecté.

public class SimpleAuthenticator implements Authenticator<BasicCredentials, User> {
    UserDAO userDao;

    public SimpleAuthenticator(UserDAO userDao) {this.userDao = userDao;}

    @Override
    public Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException    
    {
        User user = this.userDao.getUserByName(credentials.getUsername());
        if (user!=null &&
                user.getName().equalsIgnoreCase(credentials.getUsername()) &&
                BCrypt.checkpw(credentials.getPassword(), user.getPwhash())) {
            return Optional.of(new User(credentials.getUsername()));
        }
        return Optional.absent();
    }
}

Mon Signin ressource est comme ceci:

@Path("/myapp")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {
    @GET
    @Path("/signin")
    public User signin(@Auth User user) {
        return user;
    }
}

Et je signe:

~/java/myservice $ curl -u "someuser" http://localhost:8080/myapp/signin
Enter host password for user 'someuser':
{"name":"someuser"}

Question

Disons que l'utilisateur se connecte à partir d'un navigateur ou d'une application mobile native extrémité avant à l'aide de la /myapp/signin point de terminaison. Alors, comment puis-je protéger un autre point de terminaison, disons, /myapp/{username}/getstuff qui oblige l'utilisateur à être signedin

@GET
@Path("/myapp/{username}/getstuff")
public Stuff getStuff(@PathParam("username") String username) {
    //some logic here
    return new Stuff();
}

source d'informationauteur birdy