Skip to content
Snippets Groups Projects
Commit 1bc05406 authored by Julian Horner's avatar Julian Horner
Browse files

Initialize project

parents
No related branches found
No related tags found
No related merge requests found
/target/
/.settings/
/.metadata/
.classpath
.project
ESD
\ No newline at end of file
File added
File added
pom.xml 0 → 100644
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.dpunkt</groupId>
<artifactId>mongo-db-login-module</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.picketbox</groupId>
<artifactId>picketbox</artifactId>
<version>5.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.6</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
</project>
\ No newline at end of file
package de.dpunkt.myaktion.login;
import java.security.acl.Group;
import java.util.Map;
import javax.security.auth.Subject;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.login.LoginException;
import org.bson.Document;
import org.jboss.security.SimpleGroup;
import org.jboss.security.SimplePrincipal;
import org.jboss.security.auth.spi.UsernamePasswordLoginModule;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
/**
* @author Julian
*/
public class MongoDBLoginModule extends UsernamePasswordLoginModule {
//----------------------------------------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
public void initialize(Subject subject, CallbackHandler callbackHandler,
Map<String, ?> sharedState, Map<String, ?> options) {
super.initialize(subject, callbackHandler, sharedState, options);
}
//----------------------------------------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
protected String getUsersPassword() throws LoginException {
MongoClient mongoClient = MongoClients.create("mongodb://localhost");
MongoDatabase database = mongoClient.getDatabase("my-aktion");
MongoCollection<Document> organizerCollection = database.getCollection("Organizer");
Document organizerDocument =
organizerCollection.find(Filters.eq("email", getUsername())).first();
String password =
(organizerDocument == null) ? "" : (String) organizerDocument.get("password");
mongoClient.close();
return password;
}
//----------------------------------------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
protected boolean validatePassword(String inputPassword, String expectedPassword) {
return inputPassword.equals(expectedPassword);
}
//----------------------------------------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
protected Group[] getRoleSets() throws LoginException {
SimpleGroup group = new SimpleGroup("Roles");
group.addMember(new SimplePrincipal("Organizer"));
return new Group[] { group };
}
//----------------------------------------------------------------------------------------------
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment