Skip to content

Commit

Permalink
Creating properties file for auth0 configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
tushar-97 committed Jul 29, 2019
1 parent acba3f0 commit 43ab747
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 13 deletions.
Expand Up @@ -7,6 +7,7 @@
import java.security.interfaces.RSAPublicKey;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Expand All @@ -23,11 +24,13 @@
import com.auth0.jwt.interfaces.DecodedJWT;
import com.auth0.jwt.JWT;

import edu.emory.cci.bindaas.core.bundle.Activator;
import edu.emory.cci.bindaas.core.jwt.JWTManagerException.Reason;
import edu.emory.cci.bindaas.core.model.hibernate.HistoryLog;
import edu.emory.cci.bindaas.core.model.hibernate.HistoryLog.ActivityType;
import edu.emory.cci.bindaas.core.model.hibernate.UserRequest;
import edu.emory.cci.bindaas.core.model.hibernate.UserRequest.Stage;
import edu.emory.cci.bindaas.core.util.DynamicProperties;
import edu.emory.cci.bindaas.framework.util.GSONUtil;
import edu.emory.cci.bindaas.security.api.BindaasUser;

Expand All @@ -36,8 +39,28 @@
public class DefaultJWTManager implements IJWTManager {

private Log log = LogFactory.getLog(getClass());
private Properties defaultProperties;
private DynamicProperties dynamicProperties;
private static SessionFactory sessionFactory;

private String domain;
private String clientId;
private String audience;

public DynamicProperties getDynamicProperties() {
return dynamicProperties;
}

public Properties getDefaultProperties() {
return defaultProperties;
}

public void setDefaultProperties(Properties defaultProperties) {
this.defaultProperties = defaultProperties;
}

public void setDynamicProperties(DynamicProperties dynamicProperties) {
this.dynamicProperties = dynamicProperties;
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
Expand All @@ -46,8 +69,20 @@ public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

// FIXME: read values from file
private final static String domain = "tushar-97.auth0.com";
@Override
public String getAuth0Domain () {
return this.domain;
}

@Override
public String getAuth0ClientId () {
return this.clientId;
}

@Override
public String getAuth0Audience () {
return this.audience;
}


@Override
Expand Down Expand Up @@ -350,6 +385,11 @@ public static String getRole(String token) {

public void init() throws Exception {

dynamicProperties = new DynamicProperties("bindaas.auth0", defaultProperties , Activator.getContext());
this.domain = dynamicProperties.get("auth0.domain");
this.clientId = dynamicProperties.get("auth0.clientId");
this.audience = dynamicProperties.get("auth0.audience");

}

}
Expand Up @@ -18,5 +18,8 @@ public interface IJWTManager {
public Integer revokeJWT(BindaasUser bindaasUser, String initiatedBy ,String comments , ActivityType activityType) throws JWTManagerException;
public Date getExpires(String jwt);
public String getEmailAddress(Long id);
public String getAuth0Domain();
public String getAuth0ClientId();
public String getAuth0Audience();

}
Expand Up @@ -103,8 +103,16 @@
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<!--FIXME: Update default properties value-->
<bean id="JWTManager" class="edu.emory.cci.bindaas.core.jwt.DefaultJWTManager" init-method="init">
<property name="sessionFactory" ref="sessionFactory"></property>
<property name="defaultProperties">
<props>
<prop key="auth0.domain">tushar-97.auth0.com</prop>
<prop key="auth0.clientId">RHWrWpw9Yf0SgGOBlpG0mXqIwIEhykN4</prop>
<prop key="auth0.audience">my-api</prop>
</props>
</property>
</bean>

<!-- System Package -->
Expand Down
@@ -1,18 +1,22 @@
let auth0 = null;

//FIXME read values from file
const configureClient = async () => {
const configureClient = async (auth0Domain,auth0ClientId,auth0Audience) => {
auth0 = await createAuth0Client({
domain: 'tushar-97.auth0.com',
client_id: 'RHWrWpw9Yf0SgGOBlpG0mXqIwIEhykN4',
audience: 'my-api',
domain: auth0Domain,
client_id: auth0ClientId,
audience: auth0Audience,
prompt: 'login'
});
};


window.onload = async () => {
await configureClient();

let auth0Domain = document.getElementById("domain").value;
let auth0ClientId = document.getElementById("clientId").value;
let auth0Audience = document.getElementById("audience").value;

await configureClient(auth0Domain,auth0ClientId,auth0Audience);
document.getElementById("inputButton").disabled = false;

};
Expand Down
Expand Up @@ -7,6 +7,7 @@
import org.apache.velocity.VelocityContext;

import edu.emory.cci.bindaas.core.config.BindaasConfiguration;
import edu.emory.cci.bindaas.core.jwt.IJWTManager;
import edu.emory.cci.bindaas.core.util.DynamicObject;
import edu.emory.cci.bindaas.version_manager.api.IVersionManager;
import edu.emory.cci.bindaas.webconsole.bundle.Activator;
Expand All @@ -19,8 +20,9 @@ public class LoginView {
private Template template;
private VelocityEngineWrapper velocityEngineWrapper;
private IVersionManager versionManager;


private IJWTManager JWTManager;


public IVersionManager getVersionManager() {
return versionManager;
}
Expand All @@ -43,7 +45,17 @@ public void setVelocityEngineWrapper(VelocityEngineWrapper velocityEngineWrapper
this.velocityEngineWrapper = velocityEngineWrapper;
}




public IJWTManager getJWTManager() {
return JWTManager;
}

public void setJWTManager(IJWTManager JWTManager) {
this.JWTManager = JWTManager;
}


public void generateLoginView(HttpServletRequest request , HttpServletResponse response , String loginTarget , String errorMessage) throws Exception
{
@SuppressWarnings("unchecked")
Expand All @@ -61,6 +73,9 @@ public void generateLoginView(HttpServletRequest request , HttpServletResponse r
context.put("errorMessage", errorMessage);
context.put("adminconsoleConfiguration", dynamicAdminConsoleConfiguration.getObject().clone());
context.put("bindaasConfiguration", bindaasConfiguration.getObject().clone());
context.put("auth0Domain", this.JWTManager.getAuth0Domain());
context.put("auth0ClientId", this.JWTManager.getAuth0ClientId());
context.put("auth0Audience", this.JWTManager.getAuth0Audience());

// lazy init
if(template == null)
Expand Down
Expand Up @@ -314,6 +314,7 @@
<bean id="loginView" class="edu.emory.cci.bindaas.webconsole.LoginView">
<property name="velocityEngineWrapper" ref="velocityWrapper"></property>
<property name="versionManager" ref="versionManager"></property>
<property name="JWTManager" ref="jwtManager"></property>
</bean>


Expand Down
Expand Up @@ -24,7 +24,7 @@
<link rel="stylesheet" href="/foundation/stylesheets/foundation.min.css">
<link rel="stylesheet" href="/foundation/stylesheets/app.css">
<link rel="stylesheet" href="/foundation/stylesheets/general_enclosed_foundicons.css">
## FIXME: Move to proper CSS file later
## FIXME: Move to proper CSS file later + ellipsis
<style type = "text/css">
.wrapword{
/*white-space: -moz-pre-wrap !important; !* Mozilla, since 1999 *!*/
Expand Down
Expand Up @@ -161,6 +161,10 @@
</div>
</fieldset>

<input type="hidden" name="domain" id="domain" value="$auth0Domain" />
<input type="hidden" name="clientId" id="clientId" value="$auth0ClientId" />
<input type="hidden" name="audience" id="audience" value="$auth0Audience" />

<form id ="auth0-form" action="/authenticate" method="post">
<input type="hidden" name="accessToken" id="accessToken" value="" />
<input type="hidden" name="loginTarget" value="$loginTarget" />
Expand Down

0 comments on commit 43ab747

Please sign in to comment.