All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.airlift.http.server.Security Maven / Gradle / Ivy

There is a newer version: 0.0.6
Show newest version
package io.airlift.http.server;

import java.util.Collections;

import org.eclipse.jetty.security.ConstraintMapping;
import org.eclipse.jetty.security.ConstraintSecurityHandler;
import org.eclipse.jetty.security.DefaultIdentityService;
import org.eclipse.jetty.security.HashLoginService;
import org.eclipse.jetty.security.IdentityService;
import org.eclipse.jetty.security.LoginService;
import org.eclipse.jetty.security.SecurityHandler;
import org.eclipse.jetty.security.authentication.FormAuthenticator;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.security.Constraint;
import org.eclipse.jetty.util.security.Password;

public class Security {

  public SecurityHandler securityHandler(Server server) {
    
    Constraint constraint = new Constraint();
    constraint.setName(Constraint.__FORM_AUTH);
    constraint.setRoles(new String[] { "user", "admin" });
    constraint.setAuthenticate(true);

    ConstraintMapping mapping = new ConstraintMapping();
    mapping.setPathSpec("/*");
    mapping.setConstraint(constraint);
        
    ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler();
    //securityHandler.setIdentityService(identityService);
    securityHandler.setConstraintMappings(Collections.singletonList(mapping));
    HashLoginService loginService = new HashLoginService("Jenkins Realm");
    loginService.putUser("username", new Password("password"), new String[] {"user"});
    
    //loginService.setIdentityService(identityService);
    server.addBean(loginService);
    securityHandler.setLoginService(loginService);

    //FormAuthenticator authenticator = new FormAuthenticator();
    //securityHandler.setAuthenticator(authenticator);
    //authenticator.setConfiguration(securityHandler);

    return securityHandler;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy