You are here

uPortal iPerson Object How-To v1.2.1

Submitted by admin on Fri, 12/10/2004 - 14:49

I have released a new document explaining in depth, yet quite basically (go figure) how to configure the uPortal iPerson object. This "disabled-out-of-the-box-for-some-reason" object needs to be tweaked to work with Luminis III.2.

What is it?
The iPerson oject or the poor man's cpip is a hang-over, (read that as a potential headache :), from uPortal and its java classes are still accessible from Luminis. Which BTW I think rocks !!! The object, when configured properly, can access user information from either your backend database (via jdbc) or from the Luminis LDAP.

But What does it do?
On a more basic level, it can provide this information to your channels, specifically the WebProxy, to access the current user's information. Using the WebProxy channel in conjunction with this object, these variables can be passed to an external source through the querystring.

For example : http://apps.messiah.edu/LuminisXML/persondir.asp?uid=jwheat&pdsRole=admin
This querystring passes the userid and their current role within Luminis.

Version 1.2.1 released on 12/10/2004, covers :

  • PersonDirs.xml configuration
  • JDBC connection as a source
  • LDAP connection as a source
  • iPerson Attributes / default channel
  • Example : WebProxy to a static HTML
  • Appendix A: Example : WebProxy to a custom ASP page
  • Appendix B: Example : PersonDirs.xml file (jdbc)
  • Appendix C: Example : PersonDirs.xml file (ldap)

The latest revision (1.2.1 / PDF) is attached below.

Channels:

How-To:

Modification:

Comments

I successfully activated the iPersonObject and then a WebProxy channel using Jon's document.

The document was a huge help and the benfits to having the ability to send Luminis information to an external web appilication can not be overstated.

THANKS!!!

John Pile Jr
Web Services Group
University of Alaska
www.alaska.edu

I have successfully setup the iPersons Attributes default channel, (very cool) in Luminis III.3.1

But now I am trying to set up the WebProxy channel to a .asp file. I have followed Jon's example but I keep getting a channel error, the error message states:

The content of elements must consist of well-formed character data or markup.

Here is the .asp file contents

<html>
<body>
<%

username = Request.Querystring("givenName")
uid = Request.QueryString("uid")

Response.write("username :" & username)

%>
</body></html>

Any clues?

Try turning on the html filter. You can also hit your asp page directly with a browser with some fake variables - ?uid=myid&email=my@here.com

then view source to see if somethings going on in the page. Could be the webserver is adding code to the top or something silly like that.

-Jon

Jon,

When I try to hit the asp directly with a browser, the browser doesn't know what to do with the asp file and directs me to 'save to disk'

How can I have this display in a browser?

Thanks

this sounds like your web server isn't setup to serve asp potentially. are you using IIS? if you are using IIS on W2k3, have you enabled web applications (or asp pages)?

if the web server doesn't know how to serve asp then it considers it an unknown file and prompts you to download it like it would if you had a exe file or something else that your browser doesn't know how to deal with. browsers don't know what to do with asp they just receive html from the server. if it is a file type it knows (txt, pdf, html, etc.) then it will render the document but asp is not normally one of those.

CFONT's got it. If you created that .asp page and placed it on your luminis box, you'll get what you're getting.

I think if you want to create a similar function / test page using .jsp you can do something like this -

String myString = request.getParameter("param1");

Or depending on your implementation you may want a function -

   private String getItem(String queryString, String key) {
      String value = null;
      if (queryString!=null) {
         int i = queryString.indexOf(key);
         if (i>-1) {
            i = i + key.length();
            int j = queryString.indexOf("&",i);
            if (j>-1) {
               value = queryString.substring(i,j);
            } else {
               value = queryString.substring(i);
            }
            if (value.startsWith("=")) {
               value = value.replaceFirst("=","");
            }
         }
      }
      return value;
   }

At any rate, you can call my .asp page if you need one to test with. The URL is listed in the document.

-Jon

I am currently using Iplanet's webserver 6sp9... and yes I but the asp page on the Luminis server machine, which is a solaris box.
I will give the jsp page a try and also try to hit jwheat's asp page.

will let you know the outcome...

Thanks
Bruce

Hi Jon,

I was able to get this to work no problem. However, I'm running into trouble continuing on through the application I've authenticated into. It won't let me open the subsequent pages in a new window or even in the proxy channel without throwing an error. Any ideas? Is there a way to get the app to load in an inline frame?

Jamie

Hi Jon,

Thanks for your reply. I was able to get the Web Proxy channel to perform how I needed it to. There were two things I HAD to do:

1) Open links to other websites OUTSIDE the channel in a new window.
2) Open a page of the application in a new window.
(It would be more ideal to have it come up under the Pipeline frame, but this will do till we can work our way up to the CPIP or CAS stuff.)

Basically, if I set my web proxy channel pass-through type to "application" it solved the first problem. For some reason, setting it to none or marked took away the variables from the URL, just fyi).

If I wanted to post the variables to another page in my application outside the channel in a new window, I just made sure that I set the values of the variables to names that were different from the URL variables passed to the intial page that loaded in the channel. Then I added cw_inChannelLink=0 by writing the form attributes as such:

**form action="http://mysite.edu/mypage.cfm?cw_inChannelLink=0" method="post" name="go" target="_blank"**

Don't know if this will be helpful or make sense to anyone but it solved my problems for now. Anyone interested in this topic (using iPerson Object to access Cold Fusion apps) let me know.

Thanks again, Jon. You give fantastic information and I'm so excited at how large this site has grown! SO much good stuff.

Hi Jamie, I'm interested in seeing tips/tricks, examples or whatever info. you're willing to share on using iPerson with CF apps. Please contact me at ac1918 <at> wayne.edu or 313-577-4948. Thanks.

Thanks for posting this! Following the directions I was able to set up a channel that passes LDAP values to a page.

What we ultimately want to do is put a channel on the loginok.html page that gets loaded after you are authenticated, but before you get into Luminis. Really I just need to pass values to a page before a user accesses the portal. Maybe there is another way to go.

Is there a way to put a channel on a page like this?

Thanks!
Christine