Newer
Older
import it.inaf.ia2.aa.ServiceLocator;
import it.inaf.ia2.aa.data.User;
import it.inaf.ia2.aa.jwt.InvalidTokenException;
import java.util.Arrays;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import uws.UWSException;
import uws.job.user.JobOwner;
import uws.service.UWSUrl;
import uws.service.UserIdentifier;
public class IA2UserIdentifier implements UserIdentifier {
@Override
public JobOwner extractUserId(UWSUrl urlInterpreter, HttpServletRequest request) throws UWSException {
String token = null;
String header = request.getHeader("Authorization");
if (header != null && !header.isEmpty()) {
if (header.startsWith("Bearer ")) {
token = header.substring("Bearer ".length());
}
}
}
@Override
public JobOwner restoreUser(String id, String pseudo, Map<String, Object> otherData) throws UWSException {
throw new UnsupportedOperationException("Not supported yet.");
}
private CustomJobOwner getUser(String token) throws UWSException {
try {
User user = ServiceLocator.getInstance().getUserManager().getUserFromAccessToken(token);
return new CustomJobOwner(user.getName(), user.getGroups());
} catch (InvalidTokenException ex) {
throw new UWSException(401, "Invalid token");
}
}
return new CustomJobOwner("anonymous", Arrays.asList());
}
}