import java.util.ArrayList;
import
java.util.List;
import
com.bharosa.vcrypt.auth.intf.*;
import
com.bharosa.vcrypt.auth.util.VCryptAuthUtil;
import
com.bharosa.vcrypt.common.util.VCryptResponse;
import
com.bharosa.vcryptclient.proxy.exception.BharosaProxyException;
import
com.bharosa.vcryptclient.proxy.intf.BharosaProxy;
/**
* @author
pokuri
*
*/
public class
CreateUser {
private
BharosaProxy proxy = null;
public static
void main(String[] args)
{
CreateUser cu =
new CreateUser();
String response =
null;
try
{
response =
cu.createUser("pressi", "Default");
//response =
cu.checkQuestionsStatus("siva.pokuri");
} catch
(Exception e) {
// TODO
Auto-generated catch block
e.printStackTrace();
}
System.out.println("RESPONSE
" + response);
}
public String checkQuestionsStatus(String userName)
{
VCryptAuthUser user = null;
System.out.println("Checking user: " + userName);
user = new VCryptAuthUser();
user.setLoginId(userName);
try {
System.out.println("Questions
Status " + user.getRegistrationStatus());
} catch
(Exception e) {
System.out.println("Exception
" +e);
return
"QA_STATUS_CHECK_FAILED";
}
return
"CHECKED_QA_STATUS";
}
public String
createUser(String userName, String primaryGroupName)
{
proxy =
BharosaProxySingleton.getProxyInstance();
// try to find
the user record in OAAM
VCryptAuthUser user = null;
System.out.println("Creating user: " + userName);
user
= new VCryptAuthUser();
try{
user.setLoginId(userName.trim());
}
catch (Exception e) {
System.out.println("Exception
" + e);
}
user.setCustomerId(userName.trim());
user.setCustomerGroupId(primaryGroupName.trim());
try
{
user = proxy.createUser(user);
}
catch (Exception
e)
{
System.out.println("Exception
" +e);
return
"CREATE_USER_FAILED";
}
proxy.setUser(user);
int status =
proxy.getUserStatus(userName.trim());
System.out.println("User
Status before Security Questions ---- >> " + status);
String
questionId1 = "41";
String
questionText1 = "Who was your childhood hero?";
String answer1 =
"pilot1";
String
questionId2 = "42";
String
questionText2 = "What is the name of your favourite childhood
teacher?";
String answer2 =
"pilot2";
String
questionId3 = "43";
String
questionText3 = "What was your dream job as a child?";
String answer3 =
"pilot";
VCryptQuestion
question1 = new VCryptQuestion();
VCryptQuestion
question2 = new VCryptQuestion();
VCryptQuestion
question3 = new VCryptQuestion();
List<String>
answerList = new ArrayList<String>();
List<String>
answerList1 = new ArrayList<String>();
List<String>
answerList2 = new ArrayList<String>();
question1.setQuestionId(new
Long(questionId1.trim()));
question1.setQuestion(questionText1.trim());
answerList.add(answer1.trim());
question1.setAnswerList(answerList);
question2.setQuestionId(new
Long(questionId2.trim()));
question2.setQuestion(questionText2.trim());
answerList1.add(answer2.trim());
question2.setAnswerList(answerList1);
question3.setQuestionId(new
Long(questionId3.trim()));
question3.setQuestion(questionText3.trim());
answerList2.add(answer3.trim());
question3.setAnswerList(answerList2);
try
{
VCryptAuth auth =
VCryptAuthUtil.getVCryptAuthInstance();
VCryptAuth auth1
= VCryptAuthUtil.getVCryptAuthInstance();
VCryptAuth auth2
= VCryptAuthUtil.getVCryptAuthInstance();
VCryptResponse vr
= null;
VCryptResponse
vr1 = null;
VCryptResponse
vr2 = null;
vr =
auth.addQuestion(userName.trim(), question1);
vr1 =
auth1.addQuestion(userName.trim(), question2);
vr2 =
auth2.addQuestion(userName.trim(), question3);
System.out.println("Response
Code " + vr.getResponseCode());
System.out.println("Response
Code " + vr1.getResponseCode());
System.out.println("Response
Code " + vr2.getResponseCode());
System.out.println("Successfully
Created User & configured Sequrity questions");
proxy.setUserStatus(userName.trim(),
2);
System.out.println("User
"+userName+" Status
-->>"+proxy.getUserStatus(userName.trim()));
}
catch (Exception
e)
{
System.out.println("Create
user failed!!!! " + e);
}
return
"CREATE_USER_SUCCESS";
}
}
-- Siva Pokuri
Hi Siva,
ReplyDeleteI am trying to create a User and set the challenge questions but getting the below error.
saUserId=null, externalUserId='test8', externalGroupName='Default', loginId='test8', cookieSet=null, authUser=VCryptAuthUser{loginId='junk8', bharosaUserId='10004', customerGroupId='Default', customerId='test8', fullName='null', roles=null, securityPreferences={imagePath=$base/keypad/200207596-001.jpg, status=1, personalNote=fairly sea, passwordUpdateTime=1451543359574, userType=1, isLocked=false, imageStatus=1, phraseStatus=1, secondFactor=0, passwordStatus=1, isPinEnabled=false, pinUpdateTime=1451543359574, questionStatus=1, authType=2, pinStatus=1, authMode=0}}, questionText=null, off set='-5', map ={}, challengeFailureCntForSession = 0, challengeSuccesscntForSession = 0, challengeCntForSession = 0} , response=VCryptResponse{success=false, timeStamp=Thu 01:29:59 EST 2015, responseCode='52', errorMessage='Question (id=1) is not present in the pick set', errorMessageRBKey='kba.question.validation.questionNotInPickset.error', errorMessageParams='[Ljava.lang.String;@7444636', server='sampleHost/127.0.0.1', extendedDataMap=null, sess='null', transactionResponse='null}>
Any Suggestions.
Hi Siva, Great article. Please could you provide your classpath used for compile-time and run-time
ReplyDeleteTry running with jar files in class path
Deletecommons-lang-2.0.jar
iam-platform-utils.jar
oaam_core.jar
oaam_custom.properties
oaam_soap_client.jar
oaam_uio.jar
oimclient.jar
wlfullclient.jar
commons-collections-3.1.jar
fmw_audit.jar
javax.persistence_1.0.0.0_1-0-2.jar
jps-api.jar
ojdbc5.jar
org.eclipse.persistence_1.0.0.0_1-1-0.jar
webserviceclient+ssl.jar
wlclient.jar
wljmxclient.jar
xmlparserv2.jar
-- Siva Pokuri.
Hi Siva -
ReplyDeleteWe need to implement the same, but when trying to execute getting below error. Can you please provide some more detailed steps so that I can get it executed from the eclipse. What all configuration is required to execute this code from eclipse.
Any quick guidance will be highly appreciated !!
Error: when trying to execute from the eclipse
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnumFactory
INFO: Creating new instance of UserDefEnumFactory
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnumFactory
INFO: Loading Enums...
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfig
INFO: Starting Initialization of BharosaConfig... hashCode [8297698] initDone [false] current thisInstance [null]
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigCommonImpl
INFO: Constructing BharosaConfigCommonImpl : with BharosaConfigLoadIntf [com.bharosa.common.util.BharosaConfigLoadPropsImpl@164debb]
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
INFO: Reloading BharosaConfig property files
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
INFO: Unable to load properties from file=oaam_core.properties
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
SEVERE: Couldn't load properties file oaam_core.properties
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
INFO: Unable to load properties from file=oaam_asa.properties
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnum
WARNING: Element id DESede not found for enum bharosa.cipher.encryption.algorithm.enum
java.lang.Throwable
at com.bharosa.common.util.UserDefEnum.getElementValue(UserDefEnum.java:586)
at com.bharosa.common.util.UserDefEnum.getElementValue(UserDefEnum.java:614)
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnum
WARNING: Value -1 in enum bharosa.cipher.encryption.algorithm.enum not found. propertyName=keyRetrieval.classname
java.lang.NullPointerException
at com.bharosa.common.util.UserDefEnum.getPropertyByElementValue(UserDefEnum.java:1142)
at com.bharosa.common.util.UserDefEnum.getPropertyByElementValue(UserDefEnum.java:1189)
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaCipher
SEVERE: getSystemCipher classnull, lEncAlgo=DESede, lEncAlgoId=-1
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadCommonImpl
WARNING: Error with encrypted properties
java.lang.RuntimeException: Could not construct class [null]
at com.bharosa.common.util.BharosaCipher.getSystemCipher(BharosaCipher.java:300)
at com.bharosa.common.util.BharosaConfigLoadCommonImpl.decryptProperties(BharosaConfigLoadCommonImpl.java:79)
at com.bharosa.common.util.BharosaConfigLoadCommonImpl.decryptProperties(BharosaConfigLoadCommonImpl.java:66)
INFO: Loading class com.bharosa.vcrypt.auth.impl.VCryptAuthImpl
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnum
WARNING: Enum id vcrypt.user.image.status.enum not found
java.lang.Throwable
at com.bharosa.common.util.UserDefEnum.getElementValue(UserDefEnum.java:617)
at com.bharosa.vcrypt.auth.impl.VCryptAuthImpl.(VCryptAuthImpl.java:97)
at java.lang.Class.forName0(Native Method)
Thanks,
Rakesh
Hi Siva - can you please respond to my last query, its very urgent. Thanks for your understading.
ReplyDelete~Rakesh
Hi Siva - getting below error when trying to execute from eclipse or OAAM server ..
ReplyDeleteFeb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnumFactory
INFO: Creating new instance of UserDefEnumFactory
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnumFactory
INFO: Loading Enums...
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfig
INFO: Starting Initialization of BharosaConfig... hashCode [8297698] initDone [false] current thisInstance [null]
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigCommonImpl
INFO: Constructing BharosaConfigCommonImpl : with BharosaConfigLoadIntf [com.bharosa.common.util.BharosaConfigLoadPropsImpl@164debb]
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
INFO: Reloading BharosaConfig property files
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
INFO: Unable to load properties from file=oaam_core.properties
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadPropsImpl
SEVERE: Enum element bharosa.cipher.encryption.algorithm.enum.DESede_config doesn't have integer value. value=null
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnumFactory
INFO: Loaded 1 user defined enums!!!
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnum
WARNING: Element id DESede not found for enum bharosa.cipher.encryption.algorithm.enum
java.lang.Throwable
at com.bharosa.common.util.UserDefEnum.getElementValue(UserDefEnum.java:586)
at com.bharosa.common.util.UserDefEnum.getElementValue(UserDefEnum.java:614)
at com.bharosa.common.util.BharosaCipher.getSystemCipher(BharosaCipher.java:283)
at com.bharosa.common.util.BharosaConfigLoadCommonImpl.decryptProperties(BharosaConfigLoadCommonImpl.java:79)
at com.bharosa.common.util.BharosaConfigLoadCommonImpl.decryptProperties(BharosaConfigLoadCommonImpl.java:66)
at com.bharosa.common.util.BharosaConfigCommonImpl.decryptProperties(BharosaConfigCommonImpl.java:40)
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.UserDefEnum
WARNING: Value -1 in enum bharosa.cipher.encryption.algorithm.enum not found. propertyName=keyRetrieval.classname
java.lang.NullPointerException
at com.bharosa.common.util.UserDefEnum.getPropertyByElementValue(UserDefEnum.java:1142)
at com.bharosa.common.util.UserDefEnum.getPropertyByElementValue(UserDefEnum.java:1189)
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaCipher
SEVERE: getSystemCipher classnull, lEncAlgo=DESede, lEncAlgoId=-1
Feb 10, 2016 3:46:20 PM com.bharosa.common.util.BharosaConfigLoadCommonImpl
WARNING: Error with encrypted properties
java.lang.RuntimeException: Could not construct class [null]
at com.bharosa.common.util.BharosaCipher.getSystemCipher(BharosaCipher.java:300)
at com.bharosa.common.util.BharosaConfigLoadCommonImpl.decryptProperties(BharosaConfigLoadCommonImpl.java:79)
at com.bharosa.common.util.BharosaConfigLoadCommonImpl.decryptProperties(BharosaConfigLoadCommonImpl
Any help will be highly appreciated.
Thanks,
Rakesh
Make sure you have below list of jar files in your application class path.
Deletecommons-lang-2.0.jar
iam-platform-utils.jar
oaam_core.jar
oaam_custom.properties
oaam_soap_client.jar
oaam_uio.jar
oimclient.jar
wlfullclient.jar
commons-collections-3.1.jar
fmw_audit.jar
javax.persistence_1.0.0.0_1-0-2.jar
jps-api.jar
ojdbc5.jar
org.eclipse.persistence_1.0.0.0_1-1-0.jar
webserviceclient+ssl.jar
wlclient.jar
wljmxclient.jar
xmlparserv2.jar
And i think from the error message i see that it's not able to load oaam_core.properties file. try add that in your class path too and test again.
-- Siva Pokuri.
Hi,
ReplyDeleteI am trying to write a simple code for OAAM to generate OTP and validate against OAAM.
can you please guide how to proceed for that? do you have any saple code for this?
Hi Siva -
ReplyDeleteWe need to implement the same to get user session details, but when trying to execute getting below error. Can you please provide some more detailed steps so that I can get it executed from the eclipse. What all configuration is required to execute this code from eclipse.
Any quick guidance will be highly appreciated !!
oracle.security.jps.internal.config.util.BootstrapConfigurationUtil getCredentialFromBootstrapWallet
SEVERE: A password credential is expected; instead found null for alias BOOTSTRAP_JPS and key bootstrap_tY1LLw8JRu1sZVb0m8mh/vpA3pA= at location C:\JDeveloper\mywork\oaamtest\oaamtest\config\bootstrap.
May 29, 2017 11:25:23 AM oracle.security.jps.internal.config.util.BootstrapConfigurationUtil getLdapBootstrapCredential
SEVERE: Ldap bootstrap credential retrieval failed. Reason:oracle.security.jps.JpsException: JPS-01016: A password credential is expected; instead found null for alias BOOTSTRAP_JPS and key bootstrap_tY1LLw8JRu1sZVb0m8mh/vpA3pA= at location C:\JDeveloper\mywork\oaamtest\oaamtest\config\bootstrap..
May 29, 2017 11:25:23 AM oracle.security.jps.internal.credstore.ldap.LdapCredentialStore getBootstrapCredentials
SEVERE: JPS-00071: Ldap bootstrap credential retrieval failed. Reason:oracle.security.jps.JpsException: JPS-01016: A password credential is expected; instead found null for alias BOOTSTRAP_JPS and key bootstrap_tY1LLw8JRu1sZVb0m8mh/vpA3pA= at location C:\JDeveloper\mywork\oaamtest\oaamtest\config\bootstrap..
oracle.security.jps.JpsException: JPS-00071: Ldap bootstrap credential retrieval failed. Reason:oracle.security.jps.JpsException: JPS-01016: A password credential is expected; instead found null for alias BOOTSTRAP_JPS and key bootstrap_tY1LLw8JRu1sZVb0m8mh/vpA3pA= at location C:\JDeveloper\mywork\oaamtest\oaamtest\config\bootstrap..
at oracle.security.jps.internal.config.util.BootstrapConfigurationUtil.getLdapBootstrapCredential(BootstrapConfigurationUtil.java:564)
at oracle.security.jps.internal.credstore.ldap.LdapCredentialStore$1.run(LdapCredentialStore.java:127)
at oracle.security.jps.internal.credstore.ldap.LdapCredentialStore$1.run(LdapCredentialStore.java:125)
at java.security.AccessController.doPrivileged(Native Method)