Search in sources :

Example 1 with AccessEnablerException

use of com.adobe.adobepass.accessenabler.api.AccessEnablerException in project android-player-samples by BrightcoveOS.

the class MainActivity method generateSignature.

private String generateSignature(PrivateKey privateKey, String data) throws AccessEnablerException {
    try {
        Signature rsaSigner = Signature.getInstance("SHA256WithRSA");
        rsaSigner.initSign(privateKey);
        rsaSigner.update(data.getBytes());
        byte[] signature = rsaSigner.sign();
        return new String(Base64.encode(signature, Base64.DEFAULT));
    } catch (Exception e) {
        Log.e(TAG, e.toString());
        throw new AccessEnablerException();
    }
}
Also used : Signature(java.security.Signature) AccessEnablerException(com.adobe.adobepass.accessenabler.api.AccessEnablerException) AccessEnablerException(com.adobe.adobepass.accessenabler.api.AccessEnablerException)

Example 2 with AccessEnablerException

use of com.adobe.adobepass.accessenabler.api.AccessEnablerException in project android-player-samples by BrightcoveOS.

the class MainActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    // When extending the BrightcovePlayer, we must assign the BrightcoveVideoView
    // before entering the superclass. This allows for some stock video player lifecycle
    // management.
    setContentView(R.layout.adobepass_activity_main);
    brightcoveVideoView = (BrightcoveVideoView) findViewById(R.id.brightcove_video_view);
    eventEmitter = brightcoveVideoView.getEventEmitter();
    super.onCreate(savedInstanceState);
    try {
        accessEnabler = AccessEnabler.Factory.getInstance(this);
        if (accessEnabler != null) {
            accessEnabler.setDelegate(this);
            accessEnabler.useHttps(true);
        }
    } catch (AccessEnablerException e) {
        Log.e(TAG, "Failed to initialize the AccessEnabler library: " + e.getMessage());
        return;
    }
    String requestorId = getResources().getString(R.string.requestor_id);
    String credentialStorePassword = getResources().getString(R.string.credential_store_password);
    InputStream credentialStore = getResources().openRawResource(R.raw.adobepass);
    // A signature must be passed along with the requestor id from a private key and a password.
    PrivateKey privateKey = extractPrivateKey(credentialStore, credentialStorePassword);
    String signedRequestorId = null;
    try {
        signedRequestorId = generateSignature(privateKey, requestorId);
    } catch (AccessEnablerException e) {
        Log.e(TAG, "Failed to generate signature.");
    }
    // The production URL is the default when no URL is passed. If
    // we are using a staging requestorID, we need to pass the staging
    // URL.
    ArrayList<String> spUrls = new ArrayList<String>();
    spUrls.add(STAGING_URL);
    // Set the requestor ID.
    accessEnabler.setRequestor(requestorId, signedRequestorId, spUrls);
    // TODO (once we media API changes are made):
    // Media API call will return result with nulled out URL fields if the media
    // is protected. We need to make the adobepass calls to get the token for the media,
    // then make another Media API call with the adobepass token included (in the header or
    // a cookie) which will return a result with non-nulled URL fields.
    // 1. Ignore URL fields on the first call.
    // 2. Make the AdobePass calls
    // 3. Add token to next Media API call.
    // Add a test video to the BrightcoveVideoView.
    Map<String, String> options = new HashMap<String, String>();
    List<String> values = new ArrayList<String>(Arrays.asList(VideoFields.DEFAULT_FIELDS));
    Catalog catalog = new Catalog("ErQk9zUeDVLIp8Dc7aiHKq8hDMgkv5BFU7WGshTc-hpziB3BuYh28A..");
    catalog.findPlaylistByReferenceID("stitch", options, new PlaylistListener() {

        public void onPlaylist(Playlist playlist) {
            brightcoveVideoView.addAll(playlist.getVideos());
        }

        public void onError(String error) {
            Log.e(TAG, error);
        }
    });
}
Also used : Playlist(com.brightcove.player.model.Playlist) PrivateKey(java.security.PrivateKey) HashMap(java.util.HashMap) PlaylistListener(com.brightcove.player.media.PlaylistListener) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) AccessEnablerException(com.adobe.adobepass.accessenabler.api.AccessEnablerException) Catalog(com.brightcove.player.media.Catalog)

Aggregations

AccessEnablerException (com.adobe.adobepass.accessenabler.api.AccessEnablerException)2 Catalog (com.brightcove.player.media.Catalog)1 PlaylistListener (com.brightcove.player.media.PlaylistListener)1 Playlist (com.brightcove.player.model.Playlist)1 InputStream (java.io.InputStream)1 PrivateKey (java.security.PrivateKey)1 Signature (java.security.Signature)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1