[ 
http://jira.dspace.org/jira/browse/DS-109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=10162#action_10162
 ] 

Mark Diggory commented on DS-109:
---------------------------------

Yes, reviewing the code, some of the Call stack for the AuthenticationManager 
and AuthenticationMethods is pretty "whacked", the abstraction of the 
authentication methods and the ability to utilize the dspace servlet as the 
controller was never adopted properly by the other commiters after its 
inclusion in 1.4. Methods like AuthenticateMethod.initEPerson were never 
properly implmented on any of the methods and that call to 
AuthenticationMethod.initEPersons simply calls a bunch of empty methods, this 
is sad.

ShibbolethFilter doesn't actually do anything outside of call into the 
authentication stack the same way that the RegisteredOnlyFilter does. Its 
simply assuring that the user is in fact registered before accessing the 
resource, thus ShibbolethFilter isn't neccessary, in fact, in your patch it is 
not defined in the jspui web.xml, I think this can be left out.

The ShibbolethServlet.assignSpecialGroups method should be happening or 
required.  Special Groups are determined higher in the Call stack when line 132 
of DSpaceServlet calls UIUtil.obtainContext, which is where the real evaluating 
of the Shibboleth headers will occur in the ShibbolethAuthenticationMethod. By 
the time the Servlet is actually reached, the special groups have been resolved 
and placed into the users context along with those retrieved from the database. 
 If there is a problem with users accessing protected resources with special 
groups, that is a bigger problem we should evaluate the cause of, I don't 
consider this an appropriate solution.


> Consistent treatment to users in special groups
> -----------------------------------------------
>
>                 Key: DS-109
>                 URL: http://jira.dspace.org/jira/browse/DS-109
>             Project: DSpace 1.x
>          Issue Type: Improvement
>          Components: DSpace API
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2
>            Reporter: Bruc Liong
>            Assignee: Andrea Bollini
>             Fix For: 1.5.2
>
>
> We populate users into their groups via the use of "special groups" on the 
> fly (as part of Shibboleth authN integration into DSpace) and had been 
> noticing that the mapped users cannot gain access to their resources despite 
> they have the aforementioned groups in the special group.
> Temporary fix for this is to persist the group membership, e.g.
> int[] groupIDs = AuthenticationManager.getSpecialGroups(context,request);
> for(int i=0;i<groupIDs.length;i++){
>             Group g = Group.find(context, groupIDs[i]);
>             //.....
>             g.addMember(eperson);
>             g.update();
> }
> This is not ideal, it would be better if the special groups are 
> loaded/integrated into Group.isMember(eperson), or Group.isMember(groupid), 
> etc calls. These isMember seem to be only honouring explicit users assigned 
> in DB. Currently special groups only included in Group.allMemberGroupIDs and 
> isMember(context,groupid).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.dspace.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to