Skip to content
This repository was archived by the owner on Jan 21, 2022. It is now read-only.

Commit c344564

Browse files
committed
Merge branch 'develop'
* develop: (156 commits) Update with removed interface and resource files Updated to 1.4.00 and minor edits for clarity [US324509] - Update MAS Version from 4.0.00 to 1.4.00 US322780 - Update change log and mark MASSocialLogin as deprecated. US322780 - Update change log DE284027 - Support TLS 1.1/1.2 for Android 4.4 on MQTT TLS DE284027 - Only use TLS for API connection. DE284027 - Only use TLS for API connection. DE284027 - Only use TLS for API connection. DE284027 - Support TLS 1.1 and 1.2 for Android 4.4 DE284052 - Unbind connecta service after disconnected from MQTT. Updating version code and name to reflect the 4.0 release [DE283744] Removing name overriding based off identifier name due to LinkedIn [DE283744] NFC/Bluetooth menu is disabled when qrcode provider is disabled, buttons changed to two column layout DE283246 - When failed to parse the MQTTMessage to MASMessage, provide the raw message to developer. [DE282393] Session locking with no ID token now clears access and refresh tokens after retrieving the ID token [DE282393] Session locking with no ID token will no longer clear access and refresh tokens first Small refactor for MASLoginTestBase US317989 -Add more unit test for mas module [DE282374] - Trigger server switch for port changed. ... # Conflicts: # mas/src/main/java/com/ca/mas/foundation/MAS.java
2 parents 6063f1b + b56f1e2 commit c344564

File tree

410 files changed

+51300
-3137
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

410 files changed

+51300
-3137
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@
66
path = Knox
77
url = https://github.com/CAAPIM/Android-MAS-Knox.git
88
branch = develop
9+
[submodule "fido"]
10+
path = fido
11+
url = https://github.com/CAAPIM/Android-MAS-FIDO

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Follow these steps for pull requests:
1515

1616
1. Fork the repo and create your branch from `master`.
1717
4. For any new code, add unit tests.
18-
3. If you've changed APIs, update code comments for AppleDocs.
18+
3. If you've changed APIs, update code comments for JavaDocs.
1919
4. Verify that the test suite passes.
2020
5. Verify that your code follows the [Code Standard Guideline][guidelines]
2121
6. If you haven't already, complete the [Contributor License Agreement ("CLA")][cla].

ChangeLog.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,36 @@
1+
# Version 1.4.00
2+
3+
### Bug fixes
4+
- Populate MASUser.getEmailList() from SCIM interface [DE277223]
5+
- Include server prefix in MQTT topic structure. [DE269619]
6+
- Remove auto pagination for Group and User management [DE275216]
7+
- TLS1.1 and 1.2 support for Android 4.4 [DE284027]
8+
9+
10+
### New features
11+
- Introduces new way of dynamically initializing SDK with enrollment URL. With this feature, an application or system administrator can generate an URL specified to a user, so that the user can initialize SDK without having an application with built in `msso_config.json` deployed with the application. Server configuration and application level implementation is required. [US279237]
12+
- Introduces new way of performing social login through SDK. SDK now performs social login with `CustomTabs` to ensure better security, and adopts a modern way of performing OAuth web authentication. [US273008]
13+
- Introduces new protection on authorization process with Proof Key for Code Exchange by OAuth Public Clients. By default, PKCE process is enabled, and it can be disabled; however, it is strongly recommended to not disable it unless there is a specific use case. [US269512]
14+
- Adds JCenter integration so developers can use dependency manager to install Mobile SDK. [US279239]
15+
- Provides callback with error details when MASRequest is canceled. [US253874]
16+
- Minimizes the number of permissions requested by the Mobile SDK. [US285971]
17+
- Removes Spongy Castle dependency. [US238965]
18+
- Introduces new way of performing user login. MASUser.login(MASIdToken idToken, final MASCallback<MASUser> callback) [US308531]
19+
- Adds new attribute on MASRequestBuilder that allows access to unprotected endpoint on the Gateway. [US308531]
20+
21+
### Deprecated Methods
22+
- `MASSocialLogin` class is deprecated. Please use `MASCustomTabs` to display social login web URL from `MASAuthenticationProvider` and use `MASAuthorizationResponse` class to handle incoming response from `CustomTabs`. [US279228]
23+
- `MASLoginFragment` login template has been removed. Please use `MASLoginActivity` to display the Login Dialog. [US279228]
24+
- `MASFilteredRequestBuilder.setTotalResults` has been removed. Please use `setPagination` to handle result pagination. [DE275216]
25+
- Resource files `xml/prefs.xml` and `xml/authenticator_ca_mas.xml` are removed from the Mobile SDK. [DE265344]
26+
27+
28+
# Version 1.3.00-CR1
29+
30+
### Bug fixes
31+
- Remove default WebViewClient onReceivedSslError implementation . [DE247887]
32+
- Allow developer to overwrite the authenticator_ca_mas setting for AMS. [DE265344]
33+
134
# Version 1.3
235

336
### Bug fixes

README.md

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,58 @@
11
# Android Mobile SDK
2-
## for CA Mobile App Services and CA Mobile API Gateway
2+
CA Mobile API Gateway provides enterprises with a secure mobile backend that integrates systems and allows control over which users, devices and applications can access your APIs. The gateway enables developers to leverage standards for API security such as (OAuth2, OpenID Connect, PKI) through client SDKs for Android.
3+
4+
CA Mobile App Services is an extension of the CA Mobile API Gateway which provides powerful features through SDKs and APIs for developers to help accelerate the app development process.
5+
6+
The SDK consists of these frameworks:
7+
* **mag** - Handles user authentication, device and app registration, requests and local storage of certificates, keys, and token credentials for accessing the protected APIs.
8+
* **mas** - Messaging and Pub/Sub, Identity Management, and Storage services.
9+
* **masui** - Resources to implement a user login dialog, Social Login, One-Time Password, and Proximity Login (QR code and BLE).
310

4-
## Overview
5-
The Android Mobile SDK gives developers simple and secure access to the services of CA Mobile API Gateway and CA Mobile App Services.
611
For more information about our mobile products see [the website][mas.ca.com].
712

13+
## Features
14+
15+
* **Secure API Calls** - *Protect APIs with Mutual TLS and control API access on application, user and device level.*
16+
* **Authentication** - *Implement authentication with username/password, Facebook, Google, Twitter sign-in.*
17+
* **Second Factor Auth** - *Secure critical APIs with One Time Password.*
18+
* **Single Sign-On** -*Share user credentials between your apps.*
19+
* **Enterprise Browser** - *Extend the single sign-on session to web applications.*
20+
* **Proximity Login** - *Transfer the user session between devices and platforms.*
21+
* **Fingerprint Sessions Lock** - *Support phone unlocking using fingerprint recognition.*
22+
* **Messaging** - *Create collaborative apps with secure, reliable messaging.*
23+
* **User Management** - *Seamlessly integrate your app with an existing enterprise user directory.*
24+
* **Private Cloud Storage** - *Store data in a private cloud and access it from all of your devices.*
25+
* **Pub/Sub** - *Create real-time, IoT-friendly apps using an MQTT-based Pub/Sub infrastructure.*
26+
* **Adhoc Groups** - *Create groups on-the-fly for collaborative apps.*
27+
* **Local Storage** - *Store data on devices with enterprise-grade encryption.*
28+
* **UI Template** - *Provides resources to implement a user login dialog, Social Login, One-Time Password, and Proximity Login (QR code and BLE), to save time during UI creation and app prototyping.*
29+
30+
831
## Get Started
9-
Follow our step-by-step guide to [get started][get-started].
32+
* Read the "[Getting Started][get-started]" guide or watch some [video tutorials][video].
33+
* Check out our [documentation][documentation] for more details and sample code.
1034

11-
## How You Can Contribute
1235

36+
## Communication
37+
* Have general questions, need help, or have an idea and want to request a feature? Open an [issue][issues].
38+
* Find a bug? Open an [issue][issues] with the steps to reproduce it.
39+
40+
## Installation
41+
Edit your build.gradle file and add below dependency:
42+
```gradle
43+
dependencies {
44+
compile 'com.ca:mas:1.3.01'
45+
compile 'com.ca:masui:1.3.01' //Only requires when using MASUI Template
46+
}
47+
```
48+
49+
## How You Can Contribute
1350
Contributions are welcome and much appreciated. To learn more, see the [Contribution Guidelines][contributing].
1451

15-
## License
52+
## Documentation
53+
For more documentation and API references, go to our [main website][documentation].
1654

55+
## License
1756
Copyright (c) 2016 CA. All rights reserved.
1857

1958
This software may be modified and distributed under the terms
@@ -25,6 +64,9 @@ of the MIT license. See the [LICENSE][license-link] file for details.
2564
[blog]: http://mas.ca.com/blog/
2665
[get-started]: http://mas.ca.com/get-started
2766

67+
[issues]: https://github.com/CAAPIM/Android-MAS-SDK/issues
2868
[releases]: ../../releases
2969
[contributing]: /CONTRIBUTING.md
3070
[license-link]: /LICENSE
71+
[video]: https://www.ca.com/us/developers/mas/videos.html
72+
[documentation]: https://www.ca.com/us/developers/mas/docs.html

build.gradle

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ buildscript {
1414
jcenter()
1515
}
1616
dependencies {
17-
classpath 'com.android.tools.build:gradle:2.2.2'
17+
classpath 'com.android.tools.build:gradle:2.2.3'
1818
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
1919
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
2020
}
@@ -26,3 +26,18 @@ allprojects {
2626
}
2727
}
2828

29+
ext {
30+
appAuthVersion = '0.5.0'
31+
appCompatVersion = '25.1.0'
32+
buildToolsVersion = '25.0.2'
33+
compileSdkVersion = 25
34+
designVersion = '25.1.0'
35+
gridLayoutVersion = '25.1.0'
36+
minSdkVersion = 19
37+
recyclerViewVersion = '25.1.0'
38+
supportAnnotationsVersion = '25.1.0'
39+
targetSdkVersion = 25
40+
versionCode = 14
41+
versionName = '1.4.00'
42+
zxingVersion = '3.2.0'
43+
}

fido

Submodule fido added at 5fc184b

gradle.properties

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,10 @@
2626
# org.gradle.parallel=true
2727
org.gradle.jvmargs=-Xmx4096M
2828
bintray_user=
29-
bintray_api_key=
29+
bintray_api_key=
30+
mag_version=
31+
mas_version=
32+
33+
siteUrl = 'https://www.ca.com/us/developers/mas.html'
34+
gitUrl = 'https://github.com/CAAPIM/Android-MAS-SDK.git'
35+
issueUrl = 'https://github.com/CAAPIM/Android-MAS-SDK/issues'

mag/build.gradle

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@ apply plugin: 'com.github.dcendents.android-maven'
1111
apply plugin: 'com.jfrog.bintray'
1212

1313
android {
14-
compileSdkVersion 24
15-
buildToolsVersion '24.0.2'
14+
compileSdkVersion rootProject.ext.compileSdkVersion
15+
buildToolsVersion rootProject.ext.buildToolsVersion
1616

1717
lintOptions {
1818
abortOnError false
1919
}
2020

2121
defaultConfig {
22-
minSdkVersion 16
23-
targetSdkVersion 24
24-
versionCode 33
25-
versionName "3.3"
22+
minSdkVersion rootProject.ext.minSdkVersion
23+
targetSdkVersion rootProject.ext.targetSdkVersion
24+
versionCode 40
25+
versionName "4.0.00"
2626
}
2727
buildTypes {
2828
release {
@@ -57,25 +57,18 @@ task javadoc(type: Javadoc) {
5757
include '**/MAGResponseBody.java'
5858

5959
exclude '**/BluetoothLePeripheral.java'
60-
6160
}
6261

6362
dependencies {
64-
6563
compile fileTree(include: ['*.jar'], dir: 'libs')
66-
compile 'com.madgag:scprov-jdk15on:1.47.0.3'
67-
compile 'com.android.support:support-annotations:24.2.1'
68-
compile 'com.google.zxing:core:3.2.0'
64+
compile "com.android.support:support-annotations:$rootProject.ext.supportAnnotationsVersion"
65+
compile "com.google.zxing:core:$rootProject.ext.zxingVersion"
6966
}
7067

7168
//jcenter integration
72-
def siteUrl = 'https://github.com/CAAPIM/Android-MAS-SDK'
73-
def gitUrl = 'https://github.com/CAAPIM/Android-MAS-SDK.git'
74-
def issueUrl = 'https://github.com/CAAPIM/Android-MAS-SDK/issues'
75-
7669
group 'com.ca'
7770

78-
project.version = "3.3"
71+
project.version = mag_version
7972
bintray {
8073
user = bintray_user
8174
key = bintray_api_key
@@ -85,7 +78,7 @@ bintray {
8578
repo = 'maven'
8679
name = 'mag'
8780
userOrg = 'caapim'
88-
desc = 'CA Mobile API Gateway provides enterprises with a secure mobile backend that integrates systems and allows control over which users, devices and applications can access your APIs. The gateway enables developers to leverage standards for API security such as (OAuth2, OpenID Connect, PKI) through client SDKs for Android and iOS.'
81+
desc = 'SDK to support the CA Mobile API Gateway and CA Mobile App Services.'
8982
websiteUrl = siteUrl
9083
issueTrackerUrl = issueUrl
9184
vcsUrl = gitUrl

mag/magtest/build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
apply plugin: 'com.android.application'
1010

1111
android {
12-
compileSdkVersion 24
13-
buildToolsVersion '24.0.2'
12+
compileSdkVersion rootProject.ext.compileSdkVersion
13+
buildToolsVersion rootProject.ext.buildToolsVersion
1414

1515
defaultConfig {
1616
applicationId "com.ca.mas.core.test"
17-
minSdkVersion 16
18-
targetSdkVersion 24
17+
minSdkVersion rootProject.ext.minSdkVersion
18+
targetSdkVersion rootProject.ext.targetSdkVersion
1919
versionCode 1
2020
versionName "1.0"
2121

@@ -35,10 +35,10 @@ android {
3535

3636
dependencies {
3737
compile fileTree(include: ['*.jar'], dir: 'libs')
38-
compile 'com.android.support:appcompat-v7:24.2.1'
38+
compile "com.android.support:appcompat-v7:$rootProject.ext.appCompatVersion"
3939
androidTestCompile 'com.squareup.okhttp:mockwebserver:2.5.0'
4040

41-
androidTestCompile 'com.android.support:support-annotations:24.2.1'
41+
androidTestCompile "com.android.support:support-annotations:$rootProject.ext.supportAnnotationsVersion"
4242
androidTestCompile 'com.android.support.test:runner:0.3'
4343
androidTestCompile 'com.android.support.test:rules:0.3'
4444

0 commit comments

Comments
 (0)