Reorganizing to a parent project, a light and a heavy (validating) library, a commandline application and the server
This commit is contained in:
51
Mustang-Server/src/main/java/api/ApiApplication.java
Normal file
51
Mustang-Server/src/main/java/api/ApiApplication.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package api;
|
||||
|
||||
import org.glassfish.jersey.media.multipart.MultiPartFeature;
|
||||
import org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature;
|
||||
|
||||
import io.dropwizard.Application;
|
||||
import io.dropwizard.auth.AuthDynamicFeature;
|
||||
import io.dropwizard.auth.AuthValueFactoryProvider;
|
||||
import io.dropwizard.auth.basic.BasicCredentialAuthFilter;
|
||||
import io.dropwizard.setup.Bootstrap;
|
||||
import io.dropwizard.setup.Environment;
|
||||
import io.federecio.dropwizard.swagger.SwaggerBundle;
|
||||
import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration;
|
||||
import mustang.MustangResource;
|
||||
|
||||
public class ApiApplication extends Application<ApiConfiguration> {
|
||||
public static void main(String[] args) throws Exception {
|
||||
new ApiApplication().run(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Mustang Server";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(Bootstrap<ApiConfiguration> bootstrap) {
|
||||
|
||||
bootstrap.addBundle(new SwaggerBundle<ApiConfiguration>() {
|
||||
@Override
|
||||
protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(ApiConfiguration configuration) {
|
||||
return configuration.swaggerBundleConfiguration;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(ApiConfiguration configuration, Environment environment) {
|
||||
final MustangResource resource = new MustangResource();
|
||||
|
||||
environment.jersey()
|
||||
.register(new AuthDynamicFeature(new BasicCredentialAuthFilter.Builder<User>()
|
||||
.setAuthenticator(new BasicAuthenticator()).setAuthorizer(new BasicAuthorizer())
|
||||
.setRealm("Rest API access").buildAuthFilter()));
|
||||
environment.jersey().register(RolesAllowedDynamicFeature.class);
|
||||
environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class));
|
||||
environment.jersey().register(MultiPartFeature.class);
|
||||
environment.jersey().register(resource);
|
||||
}
|
||||
|
||||
}
|
||||
12
Mustang-Server/src/main/java/api/ApiConfiguration.java
Normal file
12
Mustang-Server/src/main/java/api/ApiConfiguration.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package api;
|
||||
import io.dropwizard.Configuration;
|
||||
import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class ApiConfiguration extends Configuration {
|
||||
|
||||
@JsonProperty("swagger")
|
||||
public SwaggerBundleConfiguration swaggerBundleConfiguration;
|
||||
|
||||
}
|
||||
18
Mustang-Server/src/main/java/api/BasicAuthenticator.java
Normal file
18
Mustang-Server/src/main/java/api/BasicAuthenticator.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package api;
|
||||
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import io.dropwizard.auth.AuthenticationException;
|
||||
import io.dropwizard.auth.Authenticator;
|
||||
import io.dropwizard.auth.basic.BasicCredentials;
|
||||
|
||||
public class BasicAuthenticator implements Authenticator<BasicCredentials, User> {
|
||||
@Override
|
||||
public Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException {
|
||||
if ("secret".equals(credentials.getPassword())) {
|
||||
return Optional.of(new User(credentials.getUsername()));
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
11
Mustang-Server/src/main/java/api/BasicAuthorizer.java
Normal file
11
Mustang-Server/src/main/java/api/BasicAuthorizer.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package api;
|
||||
|
||||
|
||||
import io.dropwizard.auth.Authorizer;
|
||||
|
||||
public class BasicAuthorizer implements Authorizer<User> {
|
||||
@Override
|
||||
public boolean authorize(User user, String role) {
|
||||
return user.getName().equals("good-guy") && role.equals("ADMIN");
|
||||
}
|
||||
}
|
||||
15
Mustang-Server/src/main/java/api/User.java
Normal file
15
Mustang-Server/src/main/java/api/User.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package api;
|
||||
|
||||
import io.dropwizard.auth.PrincipalImpl;
|
||||
|
||||
public class User extends PrincipalImpl {
|
||||
String username;
|
||||
|
||||
public User(String name) {
|
||||
super(name);
|
||||
username=name;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user