On 18/07/17 23:21, Alex O'Ree wrote:
> Nice, any idea which method I need to call?

You already have the Context so you want

Context.findChildren()

for a list of all the Wrappers (and it is the wrapper object you need) or

Context.findChild(String)

for a specific Wrapper if you know the name. The name should be the name
used in web.xml to define the Servlet.

Mark


> 
> On Jul 18, 2017 3:54 PM, "Mark Thomas" <ma...@apache.org> wrote:
> 
>> On 18/07/17 17:41, Alex O'Ree wrote:
>>> Alright, quick update on this.
>>>
>>> At this point, I have servlet context and a username running off the
>>> main tomcat http threads (quartz job)
>>>
>>>> StandardContext tomcat;////load from reflection from ApplicationContext
>> from ServletContext as ApplicationContextFacade
>>>> Realm realm = tomcat.getRealm()
>>>
>>> At this point, realm is a LockoutRealm that contains two child realms,
>>> the JNDI Realm and the standard UserDatabaseRealm
>>>
>>>> Principal user = realm.authenticate(username);
>>>
>>> At this point, the user object is populated and appears to have the
>>> roles attached to it (they are listed in the to String method).
>>>
>>>> realm.hasRole(new StandardWrapper(), user, role);
>>>
>>> This part returns false, if and only if the ldap membership matches
>>> exactly. Mapped roles via servlet/security-role-ref/role-link and
>>> role-name do not appear to be effect.
>>>
>>> I think this may have something to do with the Principal object not
>>> having a login context. Normally, this is available via a servlet, but
>>> this it is not.
>>>
>>> I think the root cause might be this line.
>>> https://github.com/apache/tomcat/blob/TOMCAT_7_0_42/
>> java/org/apache/catalina/realm/RealmBase.java#L933
>>>
>>> Which probably does the translation from the LDAP defined group or
>>> role into what the application is expecting. Am I on the right path
>>> here?
>>
>> Yes. If you check auth outside of a Servlet, the role mappings for the
>> Servlet won't apply. If you know which servlet to use for the role
>> mappings you can get that from the Context (Wrappers represent Servlets
>> and are children of the Context).
>>
>> Mark
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to