> Maybe there is another way...
>
> I can get the username after the user has logged in via the LOGIN cookie. If I don't use the getRemoteUser call and decide to go this route instead, how can I tell if a specific LOGIN value is actually logged in? (The LOGIN cookie sticks around after the user logs out).
I've just created a new servlet filter to be used by external servlets
(those in portlet wars for example) which will allow them to be
authorized by the portal. It's extremely simply to use.
It has been checked into trunk and has been backported to 4.4.x (but
it's pretty clean and you could easily patch an earlier release).
Look at the recent changes to:
http://lportal.svn.sourceforge.net/lportal/?rev=12619&view=revportal/branches/4.4.x/portal-impl/src/com/liferay/portal/action/LoginAction.java
portal/branches/4.4.x/portal-impl/src/com/liferay/portal/action/LogoutAction.java
portal/branches/4.4.x/portal-impl/src/com/liferay/portal/util/PortalUtil.java
http://lportal.svn.sourceforge.net/lportal/?rev=12631&view=revportal/branches/4.4.x/portal-impl/src/com/liferay/portal/servlet/filters/external/
portal/branches/4.4.x/portal-impl/src/com/liferay/portal/servlet/filters/external/ServletAuthorizingFilter.java
portal/branches/4.4.x/portal-impl/src/com/liferay/portal/servlet/filters/servletauthorizing/
portal/branches/4.4.x/portal-impl/src/com/liferay/portal/servlet/filters/servletauthorizing/ServletAuthorizingFilter.java
http://lportal.svn.sourceforge.net/lportal/?rev=12638&view=revportal/branches/4.4.x/portal-impl/src/com/liferay/portal/util/PortalInstances.java
portal/branches/4.4.x/portal-impl/src/com/liferay/portal/util/PortalUtil.java
For example, you would add this in your portlet war's web.xml:
1 <filter>
2 <filter-name>Auto Login Filter</filter-name>
3
4<filter-class>com.liferay.portal.kernel.servlet.PortalClassLoaderFilter</filter-class>
5 <init-param>
6 <param-name>filter-class</param-name>
7
8<param-value>com.liferay.portal.servlet.filters.autologin.AutoLoginFilter</param-value>
9 </init-param>
10 </filter>
11 <filter>
12 <filter-name>Servlet Authorizing Filter</filter-name>
13
14<filter-class>com.liferay.portal.kernel.servlet.PortalClassLoaderFilter</filter-class>
15 <init-param>
16 <param-name>filter-class</param-name>
17
18<param-value>com.liferay.portal.servlet.filters.servletauthorizing.ServletAuthorizingFilter</param-value>
19 </init-param>
20 </filter>
21 <filter-mapping>
22 <filter-name>Auto Login Filter</filter-name>
23 <url-pattern>/my_servlet/*</url-pattern>
24 </filter-mapping>
25 <filter-mapping>
26 <filter-name>Servlet Authorizing Filter</filter-name>
27 <url-pattern>/my_servlet/*</url-pattern>
28 </filter-mapping>
Done! Now calls like
req.getRemoteUser() "should" work.

Actually, the more people test this the better...
Bitte melden Sie sich an, um diesen Inhalt als unangebracht zu kennzeichnen.