// Path: authrite-service/src/main/java/com/lewisd/authrite/auth/JWTConfiguration.java
// public class JWTConfiguration {
//     private String jwtSecret = "secret";
//     private int jwtExpirySeconds = 3600;
//     private String cookieName = "jwtToken";
// 
//     @JsonProperty
//     public String getJwtSecret() {
//         return jwtSecret;
//     }
// 
//     public void setJwtSecret(final String jwtSecret) {
//         this.jwtSecret = jwtSecret;
//     }
// 
//     @JsonProperty
//     public int getJwtExpirySeconds() {
//         return jwtExpirySeconds;
//     }
// 
//     public void setJwtExpirySeconds(final int jwtExpirySeconds) {
//         this.jwtExpirySeconds = jwtExpirySeconds;
//     }
// 
//     @JsonProperty
//     public String getCookieName() {
//         return cookieName;
//     }
// 
//     public void setCookieName(final String cookieName) {
//         this.cookieName = cookieName;
//     }
// 
//     public JWTAuthFilter<User> buildAuthFilter() {
//         return new JWTAuthFilter.Builder<User>()
//                 .setCookieName(this.getCookieName())
//                 .setAuthenticator(new JWTAuthenticator(buildTokenManager()))
// //                .setAuthorizer(new ExampleAuthorizer())
//                 .buildAuthFilter();
//     }
// 
//     public JwtTokenManager buildTokenManager() {
//         return new JwtTokenManager(jwtSecret, jwtExpirySeconds);
//     }
// 
// }
// 
// Path: authrite-service/src/main/java/com/lewisd/authrite/auth/PasswordManagementConfiguration.java
// public class PasswordManagementConfiguration {
// 
//     public static final int MIN_LENGTH = 8;
//     public static final int MAX_LENGTH = 100;
// 
//     private int bcryptCost;
// 
//     @JsonProperty
//     public int getBcryptCost() {
//         return bcryptCost;
//     }
// 
//     @JsonProperty
//     public void setBcryptCost(final int bcryptCost) {
//         this.bcryptCost = bcryptCost;
//     }
// }


import com.fasterxml.jackson.annotation.JsonProperty;
import com.lewisd.authrite.auth.JWTConfiguration;
import com.lewisd.authrite.auth.PasswordManagementConfiguration;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
package com.lewisd.authrite;



public class AuthriteServiceConfiguration extends Configuration {

    @Valid
    @NotNull
// Path: authrite-service/src/main/java/com/lewisd/authrite/auth/JWTConfiguration.java
// public class JWTConfiguration {
//     private String jwtSecret = "secret";
//     private int jwtExpirySeconds = 3600;
//     private String cookieName = "jwtToken";
// 
//     @JsonProperty
//     public String getJwtSecret() {
//         return jwtSecret;
//     }
// 
//     public void setJwtSecret(final String jwtSecret) {
//         this.jwtSecret = jwtSecret;
//     }
// 
//     @JsonProperty
//     public int getJwtExpirySeconds() {
//         return jwtExpirySeconds;
//     }
// 
//     public void setJwtExpirySeconds(final int jwtExpirySeconds) {
//         this.jwtExpirySeconds = jwtExpirySeconds;
//     }
// 
//     @JsonProperty
//     public String getCookieName() {
//         return cookieName;
//     }
// 
//     public void setCookieName(final String cookieName) {
//         this.cookieName = cookieName;
//     }
// 
//     public JWTAuthFilter<User> buildAuthFilter() {
//         return new JWTAuthFilter.Builder<User>()
//                 .setCookieName(this.getCookieName())
//                 .setAuthenticator(new JWTAuthenticator(buildTokenManager()))
// //                .setAuthorizer(new ExampleAuthorizer())
//                 .buildAuthFilter();
//     }
// 
//     public JwtTokenManager buildTokenManager() {
//         return new JwtTokenManager(jwtSecret, jwtExpirySeconds);
//     }
// 
// }
// 
// Path: authrite-service/src/main/java/com/lewisd/authrite/auth/PasswordManagementConfiguration.java
// public class PasswordManagementConfiguration {
// 
//     public static final int MIN_LENGTH = 8;
//     public static final int MAX_LENGTH = 100;
// 
//     private int bcryptCost;
// 
//     @JsonProperty
//     public int getBcryptCost() {
//         return bcryptCost;
//     }
// 
//     @JsonProperty
//     public void setBcryptCost(final int bcryptCost) {
//         this.bcryptCost = bcryptCost;
//     }
// }


// Path: authrite-service/src/main/java/com/lewisd/authrite/AuthriteServiceConfiguration.java
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lewisd.authrite.auth.JWTConfiguration;
import com.lewisd.authrite.auth.PasswordManagementConfiguration;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;

package com.lewisd.authrite;



public class AuthriteServiceConfiguration extends Configuration {

    @Valid
    @NotNull
    private JWTConfiguration jwt = new JWTConfiguration();