caapim / android-mas-sdk Goto Github PK
View Code? Open in Web Editor NEWInstall and use the Mobile SDK for Android™
License: Other
Install and use the Mobile SDK for Android™
License: Other
Hi,
I am using your API (ver-1.4.00) in my project. it is not working on Android P only.
getting Prompt with "Detected problems with API compatibility" warning message and also getting an exception
android.os.ServiceSpecificException: (code 7)
at android.os.Parcel.createException(Parcel.java:1956)
at android.os.Parcel.readException(Parcel.java:1910)
at android.os.Parcel.readException(Parcel.java:1860)
at android.security.IKeystoreService$Stub$Proxy.get(IKeystoreService.java:786)
at android.security.KeyStore.get(KeyStore.java:195)
at android.security.KeyStore.get(KeyStore.java:206)
at java.lang.reflect.Method.invoke(Native Method)
at com.ca.mas.core.security.KeyStoreAdapter.get(KeyStoreAdapter.java:120)
at com.ca.mas.core.storage.implementation.KeyStoreStorage.readData(KeyStoreStorage.java:175)
at com.ca.mas.core.storage.implementation.KeyStoreStorage.deleteData(KeyStoreStorage.java:410)
at com.ca.mas.core.datasource.KeystoreDataSource.remove(KeystoreDataSource.java:158)
at com.ca.mas.core.store.PrivateTokenStorage.clear(PrivateTokenStorage.java:102)
at com.ca.mas.core.conf.ConfigurationManager$ClientChangeListener.onUpdated(ConfigurationManager.java:418)
at com.ca.mas.core.conf.ConfigurationManager.activate(ConfigurationManager.java:170)
at com.ca.mas.core.MobileSsoFactory.getInstance(MobileSsoFactory.java:171)
at com.ca.mas.core.MobileSsoFactory.getInstance(MobileSsoFactory.java:88)
at com.ca.mas.foundation.MAS.start(MAS.java:233)
at com.digitaslbi.hastingsdirect.HDApplication.initCAGateway(HDApplication.java:61)
at com.digitaslbi.hastingsdirect.HDApplication.onCreate(HDApplication.java:43)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
i am testing on Pixel that have official android P.
please help to resolve this issue.
After a successfull login, when i call this method, i cannot retraive the username.
In MAS SDK 1.9.00 this works. In MAS SDK 2.1.00 this not works anymore.
There are others solutions or methods?
Thanks in advance
We were facing issue for APIs downloading large file size since the limit that MAS SDK 1.9 was only 2MB.
Can the file size limit issue be resolved using MAS SDK 2.0 so that the download API can be invoked via MAG using MAS SDK 2.0.00
connected_gateway.json is getting created temporarily in the device storage which contains all the information related to client id, client secret, and the endpoints. I found that it is being created in ConfigurationManager.java file.
Is there any way to hide this json file or the contents of the json file?
Hi, im having the following issue in the AccountManagerUtil
when I run
MAS.start(context, config);
.
Im using com.ca:mas-foundation:1.8.01-Beta1
.
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.ca.mas.core.storage.sharedstorage.AccountManagerUtil.<init> + 59(AccountManagerUtil.java:59)
at com.ca.mas.core.storage.sharedstorage.MASSharedStorage.getStorageProvider + 167(MASSharedStorage.java:167)
at com.ca.mas.core.storage.sharedstorage.MASSharedStorage.<init> + 69(MASSharedStorage.java:69)
at com.ca.mas.core.storage.MASSecureSharedStorage.<init> + 28(MASSecureSharedStorage.java:28)
at com.ca.mas.core.datasource.MASSecureStorageDataSource.<init> + 51(MASSecureStorageDataSource.java:51)
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance + 343(Constructor.java:343)
at com.ca.mas.core.datasource.DataSourceFactory.getStorage + 23(DataSourceFactory.java:23)
at com.ca.mas.core.store.StorageProvider.createTokenManager + 87(StorageProvider.java:87)
at com.ca.mas.core.store.StorageProvider.<init> + 41(StorageProvider.java:41)
at com.ca.mas.core.store.StorageProvider.getInstance + 51(StorageProvider.java:51)
at com.ca.mas.core.conf.ConfigurationManager$ClientChangeListener.onUpdated + 406(ConfigurationManager.java:406)
at com.ca.mas.core.conf.ConfigurationManager.activate + 170(ConfigurationManager.java:170)
at com.ca.mas.core.MobileSsoFactory.getInstance + 169(MobileSsoFactory.java:169)
at com.ca.mas.foundation.MAS.start + 169(MAS.java:169)
I'm trying initialize with MAS.start(this, false);, occur the crash above:
Im using
implementation 'com.ca:mas-foundation:1.9.10'`
Caused by com.ca.mas.core.datasource.DataSourceException java.lang.reflect.InvocationTargetException
com.ca.mas.core.datasource.DataSourceFactory.getStorage (DataSourceFactory.java:25)
com.ca.mas.core.store.StorageProvider.createTokenManager (StorageProvider.java:87)
com.ca.mas.core.store.StorageProvider.<init> (StorageProvider.java:41)
com.ca.mas.core.store.StorageProvider.getInstance (StorageProvider.java:51)
com.ca.mas.core.conf.ConfigurationManager$ClientChangeListener.onUpdated (ConfigurationManager.java:407)
com.ca.mas.core.conf.ConfigurationManager.activate (ConfigurationManager.java:171)
com.ca.mas.core.MobileSsoFactory.getInstance (MobileSsoFactory.java:169)
com.ca.mas.core.MobileSsoFactory.getInstance (MobileSsoFactory.java:86)
com.ca.mas.foundation.MAS.start (MAS.java:182)```
This is not an issue, just a question.
We are implementing MAS/MAG/RAS SDK at a customer, and to fulfill some networking infrastructure requirements (Firewall/WAF/Reverse Proxy...) our customer is asking if the "Mobile SDK for CA Mobile API Gateway" (https://mas.ca.com) supports SNI (Server Name Indication).
We couldn't find this information in the official documentation.
By our searches in the Official Documentation and CA Communities site, we believe that CA API Gateway (Server) does not have SNI support, but the question above is specific for the Mobile Client SDK (Android/iOS/etc).
If the Mobile Client SDK supports SNI, we need to know if there is any limitation in any of the supported Operating Systems.
Best Regards,
Marlos Chida
Greetings everyone. I was reading the source code in order to know better how the SDK works to develop a Demo APP and came to know PolicyManager.java (com.ca.mas.core.policy.PolicyManager).
I couldn't find any documentation about the use of custom policies when a request/response is processed (here and at mas.ca.com), but It seems ready and there's an "official" way to do It already implemented in PolicyManager.java. The code loops into a custom policies variable, set by the property "PROP_ADD_CUSTOM_POLICIES" (wich has the value "msso.add.custom.policies"), and adds them before adding the Default Policies (Classes "xxxAssertion").
"PROP_ADD_CUSTOM_POLICIES" is set in MobileSsoConfig.java, which states that "PROP_ADD_CUSTOM_POLICIES" is an "ArrayList of String. Add a list of custom policies to intercept the Default Policy execution.".
The only places I found setting this properties were DefaultConfiguration.java and ConfigurationManager.java. Following the code logic, "PROP_ADD_CUSTOM_POLICIES" should probably be defined in Config.java, at "public static Config[] values = {..." using the same pattern as the other settings, and set at ConfigurationManager.java's create method ("conf.putProperty(attr.key, getValue(attr, jsonObject));".
So, after all this analysis, I could't find a way to use this feature. Setting "msso.add.custom.policies" in my msso_config.json with my custom policy class name doesn't work, as the property is never read and set, per my debugs. Maybe I missed something, or this feature is not ready for use now, but the foundations are set.
I would appreciate any comments, thoughts and directions on this question.
I have a fully configured and licensed CA API Gateway to do any testing required.
Tokens (access, refresh and id) are currently stored base64 encoded in AMS.
Encryption keys may be derived from client_id and/or client_secret obtained during device initialization (used symmetrically or asymmetrically)
Another option is the key pair generated for device-id
After a rigorous testing of the authentication sequence interrupted by entering offline mode, I have found an incorrect behavior of MAS v.2.1.00 in part of the exception handling logic. I see the root cause to be an incorrect authentication process behavior when an OAuth request cannot be performed due to offline mode. There is a missing exception handling thrown by OAuthClient in MSSOService class (https://github.com/CAAPIM/Android-MAS-SDK/blob/Stable/mas-foundation/src/main/java/com/ca/mas/core/service/MssoService.java#L198).
As far as I can see, the handleErrorResponse() call shall be added to the catch block (OAuthException and OAuthServerException) in order to notify listeners on the failed authentication process (via the MASCallback.onError()).
My application is getting crash after generating signed version. Before that the application was working fine.
Error log
Caused by java.lang.NoSuchMethodError No interface method destroy()V in class Ljavax/crypto/SecretKey; or its super classes (declaration of 'javax.crypto.SecretKey' appears in /system/framework/core-oj.jar) com.ca.mas.core.util.KeyUtilsSymmetric.destroyKey (KeyUtilsSymmetric.java:649) com.ca.mas.core.util.KeyUtilsSymmetric.computeMac (KeyUtilsSymmetric.java:611) com.ca.mas.core.util.KeyUtilsSymmetric.encrypt (KeyUtilsSymmetric.java:526) com.ca.mas.core.security.DefaultEncryptionProvider.encrypt (DefaultEncryptionProvider.java:57) com.ca.mas.core.storage.MASSecureSharedStorage.save (MASSecureSharedStorage.java:38) com.ca.mas.core.datasource.MASSecureStorageDataSource.put (MASSecureStorageDataSource.java:71) com.ca.mas.core.store.ClientCredentialStorage.saveClientCredentials (ClientCredentialStorage.java:35) com.ca.mas.core.context.MssoContext.setClientCredentials (MssoContext.java:565) com.ca.mas.core.policy.ClientCredentialAssertion.processRequest (ClientCredentialAssertion.java:70) com.ca.mas.core.policy.PolicyManager.processRequest (PolicyManager.java:119) com.ca.mas.core.policy.PolicyManager.execute (PolicyManager.java:152) com.ca.mas.core.context.MssoContext.executeRequest (MssoContext.java:401) com.ca.mas.core.service.MssoService.onProcessRequest (MssoService.java:138) com.ca.mas.core.service.MssoService.onCredentialsObtained (MssoService.java:118) com.ca.mas.core.service.MssoService.onHandleWork (MssoService.java:87) androidx.core.app.JobIntentService$CommandProcessor.doInBackground (JobIntentService.java:392)
Device Information
Brand: HUAWEI
Model: P9 lite
Orientation: Portrait
RAM free: 1.59 GB
Disk free: 948.13 MB
Operating System
Version: 7.0
Orientation: Portrait
Rooted: No
MAS SDK version 2.0.0
is there any solution to fix this?.
Greetings!
I believe I found an issue that affects Android apps using MAS SDK: the first time you launch an App and the device has no Lock Screen method selected (neither PIN, nor Pattern, nor Fingerprint...), SDK fires the Settings Page asking for Lock Screen method selection. If the user hits "Cancel" or "Back" on this screen, the device gets stuck and the app freeze.
That issue rise some questions:
Is it mandatory that Android devices have Lock Screen enabled to use MAS SDK Apps?
Can we disable this behavior (for MASFoundation use only)?
Is it possible to fix this issue, either showing a message saying "Lock Screen is mandatory" or adjusting the SDK?
Hi, i am using the MASFoundation.Xamarin 1.9, downloaded from the nuget packages in Visual Studio. After configuring the Secure Account Manager Storage, when i try to start the SDK, i get the following error:
Error:Java.Lang.RuntimeException:java.lang.reflect.InvocationTargetException ---> Java.Lang.Reflect.InvocationTargetException:Exception of type 'Java.Lang.Reflect.InvocationTargetException' was thrown. ---> Com.CA.Mas.Foundation.MASSharedStorageException:uid 10382 cannot explicitly add accounts of type: @2131492947 --- End of inner exception stack trace ---...
Here is a snippet from msso_config.json:
"mobile_sdk": { "sso_enabled": true, "location_enabled": true, "location_provider": "network", "msisdn_enabled": true, "enable_public_key_pinning": false, "trusted_public_pki": false, "trusted_cert_pinned_public_key_hashes": [], "client_cert_rsa_keybits": 1024, "storage": { "class": "com.ca.mas.core.datasource.MASSecureStorageDataSource" } },
Here is my authenticator.xml:
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="@string/acc_name" android:icon="@drawable/logo" android:smallIcon="@drawable/logo_small" android:label="@string/app_name"/>
Here is my manifest file:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.TallerMAG" android:installLocation="auto"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.ACCOUNT_MANAGER" /> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" /> <application android:label="TallerMAG.Android"> <service android:name="com.ca.mas.core.storage.sharedstorage.MASAuthenticatorService" android:exported="false"> <intent-filter> <action android:name="android.accounts.AccountAuthenticator" /> </intent-filter> <meta-data android:name="account.name" android:resource="@string/acc_name" /> <meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator" /> </service> </application> </manifest>
And the exception is thrown by invoking MAS.Start(activity,true)
Any ideas about where am i doing it wrong?
jcenter is being shutdown, so please publish your artifacts to somewhere else.
Also see this link: https://blog.gradle.org/jcenter-shutdown.
The getting started link in the Readme file is incorrectly formatted and goes nowhere.
Testing integrations
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.