package auth;
import auth.impl.FederatedAuthModule;
import auth.impl.FileAuthModule;
import auth.impl.JDBCAuthModule;
import auth.impl.OpenAMAuthModule;
import auth.impl.PassThruAuthModule;
import auth.impl.StubAuthModule;
/**
* Default configuration provided. Make sure you change it as per your needs. The configuration here
* must also match the JAAS configuration file. The JAAS configuration file must be loaded into the
* JVM like this: <code>-Djava.security.auth.login.config=C:/jaas.config</code>
*
* <p>
* Example JAAS configuration file for built-in modules:
*
* <pre>
* PassThruAuth {
* auth.impl.PassThruAuthModule required debug=true;
* };
* StubAuth {
* auth.impl.StubAuthModule required debug=true;
* };
* FileAuth {
* auth.impl.FileAuthModule required debug=true pwdFile="c:/passwd";
* };
* JDBCAuth {
* auth.impl.JDBCAuthModule required dbDriver="com.mysql.jdbc.Driver" dbURL="jdbc:mysql://localhost:3306/login";
* };
* OpenAMAuth {
* auth.impl.OpenAMAuthModule required debug=true userAttr="username" openAmUrl="http://openam.mybox.com:8080/openam";
* };
* FederatedAuth {
* auth.impl.FederatedAuthModule required debug=true
* userAttr="username"
* idpUrl="http://openam.mybox.com:8080/openam/SSOPOST/metaAlias/idp"
* samlIssuerUrl="http://play.mybox.com:9000"
* assertionConsumerServiceUrl="http://play.mybox.com:9000/sp/consumer";
* };
* </pre>
*/
public class Configuration {
public static final String RESPONSE_TYPE_JSON = "json";
public static final String RESPONSE_TYPE_REDIRECT = "redirect";
// constants for built-in auth modules
public static final String HANDLER_NO_AUTH = "noAuthHandler";
public static final String HANDLER_USER_PWD_STUB = StubAuthModule.class.getName();
public static final String HANDLER_USER_PWD_FILE = FileAuthModule.class.getName();
public static final String HANDLER_USER_PWD_JDBC = JDBCAuthModule.class.getName();
public static final String HANDLER_PASS_THRU = PassThruAuthModule.class.getName();
public static final String HANDLER_OPENAM = OpenAMAuthModule.class.getName();
public static final String HANDLER_SAML2 = FederatedAuthModule.class.getName();
// when unauthorized it will try to login
public static final String AUTH_METHOD_ACTIVE = "active";
// when unauthorized it will simply show a notSignedIn page
public static final String AUTH_METHOD_PASSIVE = "passive";
// some default values
private static Configuration instance;
public String authnHandler = HANDLER_USER_PWD_STUB;
public String authFailedResponseType = RESPONSE_TYPE_JSON;
public String urlLogout = "/";
public String urlAuthSucceeded = "/";
public String urlAuthFailed = "/";
public boolean followOriginalUri = true;
public String authnMethod = AUTH_METHOD_ACTIVE;
public boolean ssoLogout = false; // if true, the logout will invoke logout on Idp
private Configuration() {
}
public static Configuration getInstance() {
if (instance == null) {
synchronized (Configuration.class) {
if (instance == null) {
instance = new Configuration();
}
}
}
return instance;
}
}