package mock.controllers.auth;
import com.github.aesteve.vertx.nubes.annotations.Controller;
import com.github.aesteve.vertx.nubes.annotations.auth.Auth;
import com.github.aesteve.vertx.nubes.annotations.auth.Logout;
import com.github.aesteve.vertx.nubes.annotations.auth.User;
import com.github.aesteve.vertx.nubes.annotations.routing.http.GET;
import com.github.aesteve.vertx.nubes.auth.AuthMethod;
import com.github.aesteve.vertx.nubes.marshallers.Payload;
import io.vertx.ext.web.RoutingContext;
import mock.auth.MockUser;
@Controller("/private")
public class PrivateController {
@GET("/user")
@Auth(authority = "", method = AuthMethod.BASIC)
public void getUser(RoutingContext context, @User MockUser user) {
context.response().end(user.login);
}
@GET("/admin")
@Auth(authority = "admin", method = AuthMethod.BASIC)
public void getAdmin(RoutingContext context, @User MockUser user) {
context.response().end(user.login);
}
@GET("/api")
@Auth(authority = "admin", method = AuthMethod.API_TOKEN)
public String getApi(@User MockUser user) {
return user.login;
}
@GET("/logout")
@Auth(authority = "admin", method = AuthMethod.API_TOKEN)
@Logout
public void logout(Payload<Void> payload) {
payload.set(null);
}
}