Skip to main content
ExLibris

Knowledge Assistant

BETA
  • Subscribe by RSS
  • Back
    Primo

     

    Ex Libris Knowledge Center
    1. Search site
      Go back to previous article
      1. Sign in
        • Sign in
        • Forgot password
    1. Home
    2. Primo
    3. Knowledge Articles
    4. Cannot login via SAML when using New UI OpenURL Services page

    Cannot login via SAML when using New UI OpenURL Services page

    1. Last updated
    2. Save as PDF
    3. Share
      1. Share
      2. Tweet
      3. Share
    1. Symptoms
    2. Defect Status
    3. Workaround
    • Product: Primo
    • Product Version: Primo August 2016
    • Relevant for Installation Type: Dedicated-Direct, Direct, Local, Total Care

    Symptoms

    1. The View ID contains a character that might be encoded (e.g. an underscore: 01MY_INST)
    2. OpenURLs are directed to the New UI
    3. Using the New Primo User Authentication mechanism
    4. Authentication is setup for Dual Login
    5. The Main Profile uses SAML
    6. Trying to login after following an OpenURL results in an error page
    7. The FE library server log contains an error:
      1. Indicating the View ID cannot be found
      2. The View ID contains a percent-encoded character
    2016-10-06 19:00:23,269 WARN  [t-http-bio-1701-exec-11098] [c-PrimoViewConfigurationManager] [O -] - Failed to find primo view with id 01MY%5FINST switching to default.
    

    Defect Status

    Development

    Workaround

    1. Add the code below to the custom.js file in a View customization package
      1. Add the code after the line containing:

        var app = angular.module('viewCustom', ['angularLoad']);
      2. Add the code before the line containing:

        })();
      3. In line 3 replace 5F (underscore) with the percent code for the problem character in the View ID

    2. Create the package

    3. Upload the package to the View

    function fix32700() {
        app.controller('prmAuthenticationAfterController', [function () {
            var vm = this;
            var loginServ = vm.parentCtrl.loginService;
    
            vm.$onInit = function () {
                loginServ.normalizeTargetUrl = function () {
                    let returnURL = decodeURIComponent(this.$location.absUrl());
    
                    angular.forEach(this.$state.params, function (value, key) {
                        if (key !== 'vid' && value) {
                            if (Array.isArray(value)) {
                                value.map((pValue) => {
                                    returnURL = returnURL.replace(pValue, encodeURIComponent(this.replaceCharacters(encodeURIComponent(pValue))));
                                });
                            } else {
                                let pValue = value;
                                returnURL = returnURL.replace(key+'='+pValue, key+"="+encodeURIComponent(this.replaceCharacters(encodeURIComponent(pValue))));
                            }
                        }
                    }, this);
                    return returnURL;
                }
            };
        }]);
    
        app.component('prmAuthenticationAfter', {
            bindings: {
                parentCtrl: '<'
            },
            controller: 'prmAuthenticationAfterController'
        });
    }
    fix32700();
    

     

     


    • Article last edited: 24-Mar-2017
    View article in the Exlibris Knowledge Center
    1. Back to top
      • Cannot discharge item; data stuck in UB_ROUTING table
      • cannot run the util_sp 6 on solaris
    • Was this article helpful?

    Recommended articles

    1. Article type
      Topic
      Community Content Type
      How To
      Content Type
      Knowledge Article
      Language
      English
      Product
      Primo
    2. Tags
      This page has no tags.
    1. © Copyright 2025 Ex Libris Knowledge Center
    2. Powered by CXone Expert ®
    • Term of Use
    • Privacy Policy
    • Contact Us
    2025 Ex Libris. All rights reserved