uPortal IRC Logs-2011-10-28
[11:17:36 CDT(-0500)] <EricDalquist> from an upcoming outage notification here at UW: "Services dependent on IAA, like MyUW, will not be affected, EXCEPT that users cannot log in during the maintenance."
[11:18:26 CDT(-0500)] <wgthom> lol
[11:18:53 CDT(-0500)] <wgthom> so log in just in case
[11:19:00 CDT(-0500)] <athena> lol
[11:19:22 CDT(-0500)] <athena> even funnier since myuw doesn't have a guest view, huh?
[11:19:33 CDT(-0500)] <EricDalquist> well we do kinda
[11:19:38 CDT(-0500)] <EricDalquist> you can brows the course catalog
[11:40:40 CDT(-0500)] <EricDalquist> so athena I have a VERY basic aggregation API in place
[11:40:51 CDT(-0500)] <EricDalquist> but I don't think I'm going to have the time to get it truly ready before 4.0.2
[11:40:54 CDT(-0500)] <EricDalquist> I'm going to include it
[11:40:57 CDT(-0500)] <EricDalquist> so that purging is there
[11:41:25 CDT(-0500)] <EricDalquist> but I think we need to wait on writing any real aggregators until I can copy over more of the existing aggregation tool's infrastructure
[11:55:44 CDT(-0500)] <athena> sounds good
[11:55:52 CDT(-0500)] <athena> maybe i can at least take a look though and see what we have?
[11:55:56 CDT(-0500)] <athena> do some planning
[11:55:57 CDT(-0500)] <EricDalquist> yup
[11:56:32 CDT(-0500)] <EricDalquist> there is just a lot of stuff to get in place so that every aggregator doesn't have to figure out its own interval calculations and stuff
[11:56:47 CDT(-0500)] <EricDalquist> that turned out to be surprisingly complex in our existing aggregator :/
[11:59:13 CDT(-0500)] <EricDalquist> what would be more valuable right now I think would be adding Entity(C|R|U|D)Events and wire up the various DAOs to fire them
[11:59:30 CDT(-0500)] <EricDalquist> as well as adding id and attribute swapper events and wiring those in as well
[12:01:35 CDT(-0500)] <athena> are we recording any information about browser user agent, ip, etc?
[12:01:50 CDT(-0500)] <EricDalquist> I don't think we have that yet
[12:01:56 CDT(-0500)] <EricDalquist> we could add a SessionCreatedEvent
[12:01:59 CDT(-0500)] <EricDalquist> which captured that
[12:02:04 CDT(-0500)] <EricDalquist> since not everyone gets a LoginEvent
[12:02:15 CDT(-0500)] <EricDalquist> well guests don't since they don't really login
[12:02:53 CDT(-0500)] <EricDalquist> and just fire that SessionCreatedEvent from a HttpSessionListener
[12:04:21 CDT(-0500)] <athena> yeah
[12:04:25 CDT(-0500)] <athena> i think that'd be useful to have
[12:05:12 CDT(-0500)] <EricDalquist> that it would
[12:05:28 CDT(-0500)] <EricDalquist> LoginEvent captures all your groups & user attributes at login time
[12:12:26 CDT(-0500)] <athena> ah nice
[12:14:19 CDT(-0500)] <EricDalquist> I'm working on documenting the portal event architecture right now
[12:57:37 CDT(-0500)] <EricDalquist> https://wiki.jasig.org/display/UPC/Portal+Events
[13:28:10 CDT(-0500)] <EricDalquist> athena: what do you think of starting to collect child pages under https://wiki.jasig.org/display/UPC/uPortal+Architecture+Overview to describe the various parts of uPortal's architecture
[13:28:22 CDT(-0500)] <EricDalquist> like moving the JAXB import/export, portal events, JPA DAOs etc
[13:28:45 CDT(-0500)] <EricDalquist> and just using that as a place to build up our documentation of the various parts of uPortal
[13:39:51 CDT(-0500)] <b-rock> thanks athena. I took your advice and rewrote the the gateway sso portlet as a jsr 286 portlet.
[13:40:25 CDT(-0500)] <athena> oh how'd that go?
[13:40:42 CDT(-0500)] <b-rock> it doesn't have all of the features of the original but it does everything we need it to do in our implementation.
[13:41:14 CDT(-0500)] <b-rock> it works in the same way in that you create a <portlet> element in portlet.xml for each instance you want to deploy in the portal
[13:41:30 CDT(-0500)] <athena> nice
[13:41:38 CDT(-0500)] <athena> going to share it via the sandbox?
[13:41:46 CDT(-0500)] <b-rock> each portlet has its own configuration of links that can be sso links or regular lings
[13:41:53 CDT(-0500)] <athena> fantastic
[13:42:10 CDT(-0500)] <b-rock> yeah I can share it I just need to get it kicked around some more.
[13:42:38 CDT(-0500)] <b-rock> I need to let my PM know that the concept work is complete and so fourth
[13:43:09 CDT(-0500)] <athena> awesome, will definitely look forward to seeing
[13:43:13 CDT(-0500)] <athena> think that'll be a great thing
[13:44:07 CDT(-0500)] <b-rock> np. there are a couple of major issues we still have in our upgrade to up4 but getting the sso issue settled helps greatly
[13:45:34 CDT(-0500)] <b-rock> it will likely need to be generalized some because I'm assuming you have a user attribute for your password and that it is encrypted. I'm not sure if all portals have a password configured in the person directory.
[13:45:54 CDT(-0500)] <b-rock> or encrypted for that matter
[13:46:22 CDT(-0500)] <athena> yeah, not always
[13:46:39 CDT(-0500)] <athena> but if you contribute it that kind of thing can always be made more general later
[13:47:31 CDT(-0500)] <b-rock> good point. and it's not that much code in all so people should be able to customize it pretty easily. the only deps are jasypt and bouncy castle for the encryption. it doesn't even use spring so far.
[13:48:36 CDT(-0500)] <b-rock> oh wait. it also uses json-simple
[13:51:08 CDT(-0500)] <athena> in the long term using spring and the jackson json library would probably be a good thing
[13:51:14 CDT(-0500)] <athena> but anything makes an awesome start
[14:10:34 CDT(-0500)] <athena> EricDalquist: like the idea about collecting architecture pages
[14:10:39 CDT(-0500)] <athena> think that's a really good idea
[14:15:38 CDT(-0500)] <EricDalquist> hrm ... so I'm looking at this person searching issue
[14:15:54 CDT(-0500)] <EricDalquist> and even in the 3.2 code I don't see how it ever searched anywhere other than the UP_USER table
[14:16:52 CDT(-0500)] <athena> i've actually had some questions lately about the searching code
[14:16:58 CDT(-0500)] <athena> so that explains some things
[14:17:07 CDT(-0500)] <EricDalquist> groups & permissions has this ITypedEntitySearcher API
[14:17:14 CDT(-0500)] <EricDalquist> https://developer.jasig.org/source/browse/~br=rel-3-2-patches/uPortal/uportal-impl/src/main/java/org/jasig/portal/groups/local/searchers/RDBMPersonSearcher.java?r=8bcb70b9f0911bd8cebe545fa3237f0f2b9fed46
[14:17:19 CDT(-0500)] <EricDalquist> that is the person searching code from 3.2
[14:17:23 CDT(-0500)] <athena> ah
[14:17:32 CDT(-0500)] <EricDalquist> in 4.0 it uses ILocalAccountDao
[14:17:34 CDT(-0500)] <athena> so this isnt' using person directory?
[14:17:36 CDT(-0500)] <EricDalquist> right
[14:17:40 CDT(-0500)] <EricDalquist> but that should be an easy fix
[14:17:46 CDT(-0500)] <EricDalquist> so I think I'm just going to do that
[14:17:52 CDT(-0500)] <athena> nice
[14:19:30 CDT(-0500)] <EricDalquist> and since person directory already takes localAccountDao into account I think I should be able to just use pd
[15:17:17 CDT(-0500)] <EricDalquist> athena: so for searching for users
[15:17:45 CDT(-0500)] <EricDalquist> should I just search on username?
[15:18:03 CDT(-0500)] <EricDalquist> I'm thinking that is all I can really do without making people configure which attributes are like display name
[15:18:44 CDT(-0500)] <athena> dunno, i'm at a bit of a loss as to how to make this actually work
[15:18:55 CDT(-0500)] <athena> w/ the new directory, we want to be able to search on things like display name, really
[15:19:00 CDT(-0500)] <EricDalquist> yeah
[15:19:06 CDT(-0500)] <athena> and there's configuration to at least configure which attributes are searchable
[15:19:13 CDT(-0500)] <athena> but it doesn't really work that well in practice
[15:19:15 CDT(-0500)] <EricDalquist> where is that?
[15:19:20 CDT(-0500)] <athena> userContext.xml
[15:19:33 CDT(-0500)] <athena> right now we don't have a good way of specifying wildcards
[15:19:41 CDT(-0500)] <EricDalquist> yeah
[15:19:48 CDT(-0500)] <athena> so in some person directory connectors, spaces function as wildcards ,and some they don't
[15:19:50 CDT(-0500)] <EricDalquist> I need to make time to write a PD 2.0
[15:19:52 CDT(-0500)] <athena> kind of need a way to handle that
[15:20:12 CDT(-0500)] <EricDalquist> well person directory translate wildcards across JDBC and LDAP queries correctly
[15:20:26 CDT(-0500)] <athena> really?
[15:20:30 CDT(-0500)] <EricDalquist> IPersonAttributeDao.WILDCARD specifies the wildcard character to use
[15:20:35 CDT(-0500)] <athena> ah!
[15:20:37 CDT(-0500)] <athena> i didn't realize that
[15:20:38 CDT(-0500)] <EricDalquist> and PD translates that internally
[15:20:46 CDT(-0500)] <athena> so maybe we just need to add that to the local account dao
[15:20:50 CDT(-0500)] <EricDalquist> well the DAO impls are supposed to
[15:20:56 CDT(-0500)] <EricDalquist> PD needs help though :/
[15:20:57 CDT(-0500)] <athena> yeah, i think i just didn't know that was there
[15:21:02 CDT(-0500)] <EricDalquist> I just don't have the time to work on it
[15:21:10 CDT(-0500)] <athena> yeah
[15:21:48 CDT(-0500)] <athena> there's some weirdness too w/ searching users who have account data in multiple places
[15:22:04 CDT(-0500)] <athena> like the search might work on the LDAP side, but not the local db side, adn then you only get part of the attributes back
[15:25:43 CDT(-0500)] <EricDalquist> yup
[15:26:27 CDT(-0500)] <EricDalquist> I'd also like to have an actual Query API for cliens
[15:26:32 CDT(-0500)] <EricDalquist> with and/or/not etc
[15:26:38 CDT(-0500)] <EricDalquist> since that is all feasible
[15:28:25 CDT(-0500)] <athena> makes sense
[15:30:27 CDT(-0500)] <EricDalquist> and also not have the internal API be the same as the external
[15:30:33 CDT(-0500)] <EricDalquist> like have an actual client API
[15:30:42 CDT(-0500)] <athena> makes sense
[15:30:42 CDT(-0500)] <EricDalquist> and then an internal SPI for attribute sources
[15:30:57 CDT(-0500)] <athena> yeah
[15:31:04 CDT(-0500)] <athena> makes sense especially now that we're exposing that via REST
[16:19:15 CDT(-0500)] <EricDalquist> ok, searching for users now uses person directory username searches
[16:19:52 CDT(-0500)] <athena> cool
[16:19:57 CDT(-0500)] <athena> that should help
[16:20:04 CDT(-0500)] <EricDalquist> it would be better to search on full name too
[16:20:09 CDT(-0500)] <EricDalquist> but this is better than nothing
[16:24:12 CDT(-0500)] <EricDalquist> athena: is this complete for 4.0? https://issues.jasig.org/browse/UP-2670
[16:24:48 CDT(-0500)] <athena> no, not really
[16:24:54 CDT(-0500)] <athena> think there are still some missing pieces
[16:25:01 CDT(-0500)] <athena> testing that is on my list for the next week or so though
[16:25:02 CDT(-0500)] <EricDalquist> ok just wondering since I just applied a patch to the grouper service in trunk
[16:25:17 CDT(-0500)] <EricDalquist> namely that it was searching for all entity types, not just IPerson
[16:25:23 CDT(-0500)] <athena> ahhh
[16:25:33 CDT(-0500)] <athena> yeah i need to see what's still missing
[16:25:39 CDT(-0500)] <athena> think most of the read-only operations work
[16:34:57 CDT(-0500)] <EricDalquist> I'm loving all the interest in 4.0
[16:35:03 CDT(-0500)] <EricDalquist> just trying to get stuff fixed fast enough
[16:35:12 CDT(-0500)] <EricDalquist> looks like we'll have 40+ bugs fixed for 4.0.2
[16:35:22 CDT(-0500)] <EricDalquist> great to have so many people trying it out
[16:37:33 CDT(-0500)] <athena> yeah it really is
[16:37:41 CDT(-0500)] <athena> much easier to get stuff fixed w/ all the nice JIRA entries
[16:37:52 CDT(-0500)] <EricDalquist> yes
[16:37:55 CDT(-0500)] <athena> tried to go through as much of the easy stuff as i could this week
[16:38:12 CDT(-0500)] <EricDalquist> also looking at ohloh our commit & committer counts are trending up over the last 6 months
[16:38:14 CDT(-0500)] <athena> also have a partial fix for selecting mobile vs. desktop themes, but kind of need to think through the UI part
[16:38:19 CDT(-0500)] <athena> that's great!
[16:38:22 CDT(-0500)] <EricDalquist> oh nice
[16:38:30 CDT(-0500)] <EricDalquist> so a ui to let users override browser detection?
[16:38:34 CDT(-0500)] <EricDalquist> also did you see steveS'
[16:38:40 CDT(-0500)] <EricDalquist> tweet about wurfl?
[16:41:20 CDT(-0500)] <EricDalquist> man this portlet url double escape issue is going to be a constant PITA
[16:41:45 CDT(-0500)] <EricDalquist> I'm tempted to add logic into the parameter processor to try and detect it and warn about it
[16:45:16 CDT(-0500)] <athena> i saw the tweet but wasn't able to get to the article at the time
[16:45:19 CDT(-0500)] <athena> what was it about?
[16:45:35 CDT(-0500)] <EricDalquist> wurfl put a VERY restrictive license on the browser mapping file
[16:45:39 CDT(-0500)] <EricDalquist> you can't modify it
[16:45:42 CDT(-0500)] <EricDalquist> you can't distribute it
[16:45:45 CDT(-0500)] <athena> wow, that's stupid
[16:45:51 CDT(-0500)] <athena> good thing we're not using it
[16:45:54 CDT(-0500)] <EricDalquist> yeah
[16:46:04 CDT(-0500)] <athena> last time i tried it it was pretty much useless for what we needed
[16:46:09 CDT(-0500)] <athena> didn't map desktop browsers well at all
[16:47:05 CDT(-0500)] <EricDalquist> :/
[16:48:38 CDT(-0500)] <EricDalquist> I thought we had fixed the double escape issue with the CMS portlet ...
[16:48:39 CDT(-0500)] <EricDalquist> hrm
[16:49:19 CDT(-0500)] <athena> ahh
[16:49:26 CDT(-0500)] <EricDalquist> apparently not
[16:49:34 CDT(-0500)] <EricDalquist> oh well I'll have to check that out later and fix it
[16:51:02 CDT(-0500)] <EricDalquist> ok ... I'm headed home
[16:51:04 CDT(-0500)] <EricDalquist> have a good weekend
[16:51:21 CDT(-0500)] <athena> you too!