Enabling Opt Out Functionality

Implementing OTP Anywhere 11-13 } return null; } public void setUserDataUIOSessionData sessionData, String key, String value{ setUserDataValuesessionData, key, value; setUserDataFlagsessionData, key, value; } protected void setUserDataValueUIOSessionData sessionData, String key, String value{ VCryptAuthUser clientUser = sessionData.getClientAuthUser; if clientUser = null { clientUser.setUserDataBharosaConfig.getoaam.otp.contact.info.prefix, otpContactInfo_ + key, value; } } protected String getUserDataValueUIOSessionData sessionData, String key { VCryptAuthUser clientUser = sessionData.getClientAuthUser; if clientUser = null { return clientUser.getUserDataBharosaConfig.getoaam.otp.contact.info.prefix, otpContactInfo_ + key; } return null; } protected void setUserDataFlagUIOSessionData sessionData, String key, String value{ VCryptAuthUser clientUser = sessionData.getClientAuthUser; if clientUser = null { if StringUtil.isEmptyvalue { clientUser.setUserDataBharosaConfig.getoaam.otp.contact.info.flag.prefix, otpContactInfoFlag_ + key, null; } else { clientUser.setUserDataBharosaConfig.getoaam.otp.contact.info.flag.prefix, otpContactInfoFlag_ + key, true; } } } protected boolean getUserDataFlagUIOSessionData sessionData, String key { VCryptAuthUser clientUser = sessionData.getClientAuthUser; if clientUser = null { return Boolean.valueOfclientUser.getUserDataBharosaConfig.getoaam.otp.contact.info.fl ag.prefix, otpContactInfoFlag_ + key; } return false; } } 11-14 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager

11.9.3 Custom Implementation Recommendations

Extend the base implementation class DefaultContactInfoManager, and override the setUserDataValue and getUserDataValue methods to store the data values where appropriate for you implementation. Leave the default implementation of setUserDataFlag and getUserDataFlag in place in order for OAAM to properly track which data has been set for the user.

11.9.4 Configuring Properties

OTP Anywhere registration fields are defined by the user defined enum: bharosa.uio.default.userinfo.inputs.enum. Each element has a managerClass property that designates which class will be used to store the registration data. For example, the default mobile phone element is as follows: bharosa.uio.default.userinfo.inputs.enum=Enum for Contact information bharosa.uio.default.userinfo.inputs.enum.mobile=0 bharosa.uio.default.userinfo.inputs.enum.mobile.name=Mobile Phone bharosa.uio.default.userinfo.inputs.enum.mobile.description=Mobile Phone bharosa.uio.default.userinfo.inputs.enum.mobile.inputname=cellnumber bharosa.uio.default.userinfo.inputs.enum.mobile.inputtype=text bharosa.uio.default.userinfo.inputs.enum.mobile.maxlength=16 bharosa.uio.default.userinfo.inputs.enum.mobile.required=true bharosa.uio.default.userinfo.inputs.enum.mobile.order=4 bharosa.uio.default.userinfo.inputs.enum.mobile.enabled=true bharosa.uio.default.userinfo.inputs.enum.mobile.regex=\\d{1}\\D?\\d{3}\\D?\\D?\ \d{3}\\D?\\d{4} bharosa.uio.default.userinfo.inputs.enum.mobile.errorCode=otp.invalid.mobile bharosa.uio.default.userinfo.inputs.enum.mobile.managerClass=com.bharosa.uio.manag er.user.DefaultContactInfoManager As shown, the default mobile phone definition uses the DefaultContactInfoManager class to manage the data. If a custom implementation is desired, the value of the managerClass attribute can be updated in OAAM Admin or through OAAM Extension shared library to use a custom class.

11.10 Example Configurations

This section contains the following topics: ■ Additional Registration Field Definitions Examples ■ Additional Challenge Message Examples ■ Additional Processors Registration Examples

11.10.1 Additional Registration Field Definitions Examples

Additional registration field definitions are shown below.