You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2014/11/25 10:46:12 UTC
[jira] [Resolved] (FC-49) The J2eePolicyMgrImpl.createSession()
class stores the wront type into the context
[ https://issues.apache.org/jira/browse/FC-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Emmanuel Lecharny resolved FC-49.
---------------------------------
Resolution: Fixed
Fixed with http://git-wip-us.apache.org/repos/asf/directory-fortress-realm/commit/805bc4cd
> The J2eePolicyMgrImpl.createSession() class stores the wront type into the context
> ----------------------------------------------------------------------------------
>
> Key: FC-49
> URL: https://issues.apache.org/jira/browse/FC-49
> Project: FORTRESS-CORE
> Issue Type: Bug
> Affects Versions: 1.0.0-RC39
> Reporter: Emmanuel Lecharny
> Fix For: 1.0.0-RC40
>
>
> The Map we use in this method should contain a {{<String, Session>}}. In the method, we store a {{String}} (a serialized version of the session). In order for this to be possible, the {{Map}} has no generic :
> {code}
> HashMap context = new HashMap<String, Session>();
> {code}
> Obviously, using something like :
> {code}
> HashMap<String, Session> context = new HashMap<String, Session>();
> {code}
> will cause a compilation error a few lines down :
> {code}
> String ser = serialize( session );
> // Store the serialized principal inside the context hashmap
> // which allows overriden toString to return it later, from within an application thread.
> // This facilitates assertion of rbac session from the tomcat realm into the web application session.
> context.put( TcPrincipal.SERIALIZED, ser ); <<---------- Error !
> {code}
> This serialized form of the session is only used by the {{TcTerminal.toString()}} method :
> {code}
> public final String toString()
> {
> String ser = null;
> HashMap context = getContext();
> if ( context != null )
> {
> ser = (String)context.get( SERIALIZED );
> }
> return ser;
> }
> {code}
> At this point, I think we should simply use a {{HashMap<String, Object>}} data structure, and cast the content accordingly to the {{String}} we use as a key (ie, to {{Session}} when the key is {{"session"}} and to {{String}} when it's {{"SERIALIZED"}}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)