BankID Java Server API Reference
The full BankID Java Server API javadoc is located in the BIDJSERVER_VX_X_X /javadoc directory on the distribution cd. The VX_X_X here symbols the current version number.
BIDFactory
registerBankIDContext
Syntax
public void registerBankIDContext( MerchantConfig merchantConfig) throws BIDException
Purpose
This method allows merchant applications to register a merchant context without needing a BankID configuration file.
Parameter | Type | Description |
---|---|---|
merchantConfig | MerchantConfig | The merchant configuration instance. |
This method returns a "no.bbs.server.vos.MerchantConfig" instance. The MerchantConfig instance holds the following information about the input merchant name:
- merchant keystore
- granted certificate policies for the merchant
- merchant name
- webaddresses
- proxy settings
loadBankIDContext
Syntax
public void loadBankIDContext( String configurationDirectoryPath, String merchantName, String passphrase) throws BIDException
Purpose
This method allows the merchant application to load a merchant context from a configuration file called <merchantName>.props. This configuration file must be present in the calling applications classpath if the input parameter "configurationDirectoryPath" is null.
Parameter | Type | Description |
---|---|---|
configurationDirectoryPath | String | The fully qualified path to the directory where <merchantname>.props and merchantname.bid are located. This value may also be null. If this paramter value is null then the merchant configuration file must be located in BankID Server's runtime classpath. |
merchantName | String | The merchant name. This is also the name of the merchant's props-file that must be located in the merchant applications classpath or in the |
passphrase | String | The merchant keystore password |
getFacade
Syntax
public BIDFacade getFacade( String merchantName) throws BIDException
Purpose
This method returns a "no.bbs.server.implementation.BIDFacade" instance. This instance exposes the BankID Java Server API methods.
Parameter | Type | Description |
---|---|---|
merchantName | String | The merchant name. |
BIDFacade
initTransaction
Syntax
public String initTransaction( String operation, String encKey, String encData, String encAuth, String sid, BIDSessionData sessionData) throws BIDException
Purpose
- This method handles the initialization of the BankID communication. The behaviour depends on the operation. The method returns the formatted response string to return to the BankID client.
- Configuration of other CMS (PKCS#7) and OCSP Response formats than the original default BankID formats, must be done prior to calling this method. This is done by setting two variables in the session data. The main usage scenario is signing of PDFs, and creation of PDF signatures (PAdES). Please note that the PDF document bytes to be signed must contain an empty Signature Dictionary, as this dictionary must be a part of the content that is signed. It should also be noted that it will not be possible to create SEID SDOs when other formats are used than the original default BankID formats.
- The BIDSessionData object is updated and must be stored for later use.
More information about BIDSessionData can be found on the release CD under the BankID Java Server javadoc directory.
Parameter | Type | Description |
---|---|---|
operation | String | The operation parameter received from the client |
encKey | String | The base 64 encoded baseKey received from the client to derive the sessionKey |
encData | String | The base 64 encoded encrypted data received from the client |
encAuth | String | A base64 encoded message authentication code of all other parameters |
sid | String | The sessionID parameter received from client |
sessionData | BIDSessionData | The BIDSessionData object to hold the necessarry data |
verifyTransactionRequest
Syntax
public void verifyTransactionRequest( String operation, String encKey, String encData, String encAuth, String sid, BIDSessionData sessionData) throws BIDException
Purpose
- This method handles the verification of data received from the client in the verifyAuth and verifySign operations, or if the client sends an handleError.
- The BIDSessionData object used in initTransaction(…) must be used as input to this method.
- The BIDSessionData object is updated and must be stored for later use.
More information about BIDSessionData can be found on the release CD under the BankID Java Server javadoc directory.
Parameter | Type | Description |
---|---|---|
operation | String | The operation parameter received from the client |
encKey | String | The base 64 encoded baseKey received from the client to derive the sessionKey |
encData | String | The base 64 encoded encrypted data received from the client |
encAuth | String | A base64 encoded message authentication code of all other parameters |
sid | String | The sessionID received from the client |
sessionData | BIDSessionData | The BIDSessionData object to hold the necessarry data |
verifyTransactionResponse
Syntax
public String verifyTransactionResponse( BIDSessionData sessionData) throws BIDException
Purpose
- This method produces the encrypted response that is returned to the client for the operations verifySign, verifyAuth and handleError.
- The BIDSessionData object used in verifyTransactionRequest(…) must be used as input to this method.
More information about BIDSessionData can be found on the release CD under the BankID Java Server javadoc directory.
Parameter | Type | Description |
---|---|---|
sessionData | BIDSessionData | The BIDSessionData object to hold the necessarry data |
initSession
Syntax
public InitSessionInfo initSession( InitSessionInfo initSessionInfo) throws BIDException
Purpose
This method initiates the process of starting the BankID Web-client. The input InitSession instance must contain the following parameters:
- merchantURL (setMerchantURL)
- useragent (setUserAgent)
- action (setAction)
- localeId (setLocaleId)
- sid (setSid)
- suppressBroadcast(setSuppressBroadcast)
- showUnderstanding (setShowUnderstanding) sign only
- showConfirmation (setShowConfirmation) sign only
- docDisplayMode (setDocDisplayMode) sign only
- extPDFDomain (setExtPDFDomain) sign only, (if clientVersion 2.0)
- nextUrl (setNextUrl)
- merchantFEDomain (setMerchantFEDomain)
- certType (setCertType)
- timeout (setTimeout)
- withCredentials(setWithCredentials)
- merchantFEAncestors (setMerchantFEAncestors) (if clientVersion 2.1)
- clientSessionTimeout (setClientSessionTimeout) (if clientVersion 2.1)
- clientVersion (setClientVersion)
If another Client Proxy than the default is used, the url to the client proxy must be given. If the custom client proxy is not registered in the BankID COI database with a public key, the hex encoded modulus of the public key must be specified as well. This is done by populating the parameters in the list below:
- clientProxyURL (setClientProxyURL) (if clientVersion 2.1)
- clientProxyPublicKey (setClientProxyPublicKey) (if clientVersion 2.1)
The returned "no.bbs.server.vos.InitSessionInfo" contains the traceID received from BankID COI, and a helperURI and a clientID which are used together to retrieve the BankID Web-client. For additional information take a look at the BankID Java Server javadoc located on the BankID release CD, or see the implementation guides [IMPLW] and [IMPL].
Parameter | Type | Description |
---|---|---|
initSessionInfo | InitSessionInfo | The instance holding the values for the initSession request along with already set client environment configurations. We recommend all applications to log the messages returned from this method if any. |
generateMerchantReference
Syntax
public String generateMerchantReference( String locale) throws BIDException // OR @Deprecated public String generateMerchantReference() throws BIDException
Purpose
This method generates the reference to show to the user during mobile authentication. This reference will also be visible on the mobile phone of the user when it is added to the MobileInfo object during the requestMobileAction(mobileInfo) call.
The merchant reference generated is a combination of two words derivided from two dictionaries provided by the FOI. BankID Server will cache these dictionaries for 24 hours.
A call to the method without the "locale" parameter is deprecated, but will for a period use the default locale; no_NO.
requestMobileAction
Syntax
public TransactionAndStatus requestMobileAction( MobileInfo mobileInfo)throws BIDException
Purpose
This method can be used by the merchant to perform a BankID operation using a mobile phone.
MobileInfo instance MUST contain the following parameters:
- phoneNumber
- phoneAlias
- URL
- action
- merchantReference (if action is "auth")
For more details please refer to the BankID Java Server javadoc located on the BankID release CD.
Parameter | Type | Description |
---|---|---|
mobileInfo | MobileInfo | Object containing the needed data. |
requestMobileStatus
Syntax
public String requestMobileStatus( String transactionReference) throws BIDException
Purpose
Method to get the status from an earlier initialized mobile phone signing process. Note that this method can only be called during asynchronous communication.
Parameter | Type | Description |
---|---|---|
transactionReference | String | The transaction reference received from the previous successful requestMobileAction() call |
pushSMS
Syntax
public String pushSMS( String transactionReference, String text) throws BIDException
Purpose
This method is used for sending an SMS to the end user after a successful transaction.
Parameter | Type | Description |
---|---|---|
transactionReference | String | The transaction reference received from the previous successful requestMobileAction() call |
text | String | The text to be displayed on the phone. Maximum 120 characters and ISO-8859-1 encoded. |
getTransactionInfo
Syntax
public HashMap<String, String> getTransactionInfo( String key, List<String> oidList, long timeoutInMs) throws BIDException
Purpose
The getTransactionInfo function can be used to request information about a transaction identified by "key". The "oidList" parameter specifies the type of information, and the "timeoutInMs" is used to kill the request if the service is slow to perform or no transaction data is available yet.
Depending on the merchans access rights the returned HashMap will contain the requested oids and its values.
Parameter | Type | Description |
---|---|---|
key | String | The uniq identifier for the data to retrieve. |
oidList | List | The list of "oids" the merchant are asking for. Each oid represents a type of data. |
timeoutInMs | long | Timeout in milliseconds |
getVersionInfo
This method returns information about the BankID Java Server and the runtime environment.
public static String getVersionInfo()
Purpose
The getVersionInfo method is used to retrieve some information about the BankID Java Server and the runtime environment. The method returns a java.lang.String on the following format:
[<key>=<value>][<key>=<value>] … [<key>=<value>]
The following information is return, if available:
- bankIdServerType
- bankIdServerVersion
- platform
- arch
- bouncyCastleVersion
- javaCompileVersion
- javaVersion
getRawTransactionInfo
Syntax
public Map<String, String> getRawTransactionInfo()
This method returns a map containing all information from the client regarding the BankID transaction. The map is available after verifyTransactionRequest is called in the verifySign or handleError callback. If the map is empty or does not exists, null is returned.
getRawTransactionInfoItem
public String getRawTransactionInfoItem( String key)
Purpose
This is an alternative method to the getRawTransactionInfo. Instead of first getting the whole map and then get a single value, this method lets you get the single value right away.
If the supplied key does not exists in the map, null is returned.
Parameter | Type | Description |
---|---|---|
key | String | The rawTransactionInfoItem key of the wanted value. |