50 lines
1.9 KiB
Java
50 lines
1.9 KiB
Java
// package id.co.iconpln.apkt.data309;
|
|
|
|
// import jakarta.annotation.Priority;
|
|
|
|
// import org.eclipse.microprofile.config.inject.ConfigProperty;
|
|
// import jakarta.ws.rs.container.ContainerRequestContext;
|
|
// import jakarta.ws.rs.core.Response;
|
|
// import jakarta.ws.rs.ext.Provider;
|
|
// import jakarta.ws.rs.container.ContainerRequestFilter;
|
|
// import java.util.Base64;
|
|
|
|
// @Provider
|
|
// @Priority(100)
|
|
// public class AuthFilter implements ContainerRequestFilter {
|
|
|
|
// private static final String AUTHORIZATION_PREFIX = "Basic ";
|
|
// @ConfigProperty(name = "quarkus.auth.username")
|
|
// String authUsername;
|
|
// @ConfigProperty(name = "quarkus.auth.password")
|
|
// String authPassword;
|
|
|
|
// @Override
|
|
// public void filter(ContainerRequestContext requestContext) {
|
|
// String authHeader = requestContext.getHeaderString("Authorization");
|
|
|
|
// if (authHeader == null || !authHeader.startsWith(AUTHORIZATION_PREFIX)) {
|
|
// requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).build());
|
|
// return;
|
|
// }
|
|
|
|
// // Decode and validate credentials
|
|
// String encodedCredentials = authHeader.substring(AUTHORIZATION_PREFIX.length());
|
|
// String decodedCredentials = new String(Base64.getDecoder().decode(encodedCredentials));
|
|
// String[] credentials = decodedCredentials.split(":", 2);
|
|
|
|
// String username = credentials[0];
|
|
// String password = credentials.length > 1 ? credentials[1] : "";
|
|
|
|
// // Implement your user validation logic here
|
|
// if (!isValidUser(username, password)) {
|
|
// requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).build());
|
|
// }
|
|
// }
|
|
|
|
// private boolean isValidUser(String username, String password) {
|
|
// // Replace with actual validation logic
|
|
// return authUsername.equals(username) && authPassword.equals(password);
|
|
// }
|
|
// }
|