ffsaf-site/src/main/java/fr/titionfire/ffsaf/rest/AuthEndpoints.java

52 lines
1.3 KiB
Java

package fr.titionfire.ffsaf.rest;
import fr.titionfire.ffsaf.rest.data.UserInfo;
import io.quarkus.security.Authenticated;
import io.quarkus.security.identity.SecurityIdentity;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.jwt.JsonWebToken;
import java.net.URI;
import java.net.URISyntaxException;
@Path("api/auth")
public class AuthEndpoints {
@ConfigProperty(name = "login_redirect")
String redirect;
@Inject
SecurityIdentity securityIdentity;
@Inject
JsonWebToken accessToken;
@GET
@Produces(MediaType.TEXT_PLAIN)
public Boolean auth() {
return !securityIdentity.isAnonymous();
}
@GET
@Path("/userinfo")
@Authenticated
@Produces(MediaType.APPLICATION_JSON)
public UserInfo userinfo() {
return UserInfo.makeUserInfo(accessToken, securityIdentity);
}
@GET
@Path("/login")
@Authenticated
@Produces(MediaType.TEXT_PLAIN)
public Response login() throws URISyntaxException {
return Response.temporaryRedirect(new URI(redirect)).build();
}
}