package com.activequant.server.web.utils; import java.security.Principal; import java.util.ArrayList; import java.util.List; import javax.security.auth.Subject; import org.eclipse.jetty.security.HashLoginService; import org.eclipse.jetty.server.UserIdentity; public class JettyWordpressLoginService extends HashLoginService{ private List<UserIdentity> loggedInUsers = new ArrayList<UserIdentity>(); public JettyWordpressLoginService(){ super(); } public JettyWordpressLoginService(String name, String config){ super(name, config); } public JettyWordpressLoginService(String name){ super(name); } @Override public UserIdentity login(String username, Object credentials) { // // System.out.println("Authenticating ..."); if (WordpressAuthLayer.auth(username, credentials.toString())) { // ok, true. UserIdentity user = new UserIdentity() { @Override public Subject getSubject() { return null; } @Override public Principal getUserPrincipal() { return null; } @Override public boolean isUserInRole(String arg0, Scope arg1) { return true; } }; if(!loggedInUsers.contains(user)) loggedInUsers.add(user); return user; } else return null; } @Override public void logout(UserIdentity arg0) { // remove user from our users list. loggedInUsers.remove(arg0); } @Override public boolean validate(UserIdentity arg0) { if (loggedInUsers.contains(arg0)) return true; return false; } }