Discover Transaction data details like Data Type, Row and Column mappings

20-4 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager if StringUtil.isEmptytoAddr { logger.errorNo user email in profile.; return false; } Send secret code to customer using your email provider } catch Exception ex { logger.errorChallengeEmail Error sending code., ex; return false; } return true; } public String checkStatusUIOSessionData sessionData, boolean userWaiting, boolean isRetry { String target = ChallengeProcessorIntf.TARGET_WAIT; user already has code, trying again - send to challenge page if isRetry{ return ChallengeProcessorIntf.TARGET_CHALLENGE; } boolean sendComplete = false; if userWaiting{ if secret code is sent set target to target = ChallengeProcessorIntf.TARGET_CHALLENGE; failed to send target = ChallengeProcessorIntf.TARGET_ERROR; still processing target = ChallengeProcessorIntf.TARGET_WAIT; } return target; } }

20.2.4 Secret PIN Implementation

The AbstractOTPChallengeProcessor class has a default pin generation method, generateCode, that you can override to provide your pin generation logic.

20.3 Define the Delivery Channel Types for the Challenge Processors

This section contains instructions on defining a delivery channel type. Examples are provided for your reference.

20.3.1 Challenge Type Enum

Challenge types are configured by the enum, challenge.type.enum. The actual enum value is shown as follows: bharosa.uio.application. challenge.type.enum.challenge type For example, bharosa.uio.default.challenge.type.enum.ChallengeEmail The challenge type enum is used to associate a challenge type with the java code needed to perform any work related to that challenge type. An example of Developing Custom Challenge Processors 20-5 implementing an email challenge processor is shown in Section 20.2.3, Example: Email Challenge Processor Implementation. The Challenge Type ID for example, ChallengeEmail should match a rule action returned by the rules when that challenge type is used. The rule action for ChallengeEmail is rule.action.enum.ChallengeEmail. The rule action is to challenge the user using email using the email delivery channel. Channel normally refers to the delivery channel used to send to the user.

20.3.2 Example: Defining an OTP Channel Type

To define a challenge type, use the following property: bharosa.uio.default.challenge.type.enum.MyChallenge In the property, default is the UIO application name, and MyChallenge is the Challenge Type being added. For example, ChallengeEmail is the Challenge Type in the example below. bharosa.uio.default.challenge.type.enum.ChallengeEmail The rule action is to challenge the user with email using the email delivery channel. rule.action.enum.ChallengeEmail To enabledisable a challenge type, the available flag should be set: bharosa.uio.default.challenge.type.enum.MyChallenge.available = false Setting the available flag and setting the enabled flag are different. The enabled flag would remove it from list. Example for Defining a Channel Type Attributes bharosa.uio.default.challenge.type.enum with example values are shown as follows: bharosa.uio.default.challenge.type.enum.MyChallenge = 1 unique value to identify Challenge Email in bharosa.uio.default.challenge.type.enum bharosa.uio.default.challenge.type.enum.MyChallenge.name = MyChallenge unique string to identify Challenge Email in bharosa.uio.default.challenge.type.enum, no spaces bharosa.uio.default.challenge.type.enum.MyChallenge.description = Email Challenge descriptive name bharosa.uio.default.challenge.type.enum.MyChallenge.processor = oracle.oaam.challenge.processor.challenge.EmailChallengeProcessor Processor used for sending emails instance of com.bharosa.uio.processor.challenge.ChallengeProcessorIntf Table 20–2 Challenge type Flags Property Description available if the challenge type is available for use service ready and configured. To enabledisable an OTP challenge type, the available flag should be set. processor java class for handling challenges of this type. requiredInfo comma separated list of inputs from the registration input enum