# JDBCRealm



## di3u (19. Jan 2007)

Tag zusammen,
folgendes Problem beschäftigt mich im Moment:

Ich habe eine Art Portalseite, welche mittels Tiles zusammengesetzt ist. Eines dieser Tiles beinhaltet nun eine durch die in der web.xml eingetragene security-constraints enthaltene JSP-Seite. Hier sollen dem eingeloggten (!) User also Informationen über z.B. seinen letzten Login oder was weiß ich angezeigt werden. Da beim initialen Aufruf der Seite der User aber noch nicht eingeloggt sein kann sollte also der Mechanismus greifen und dem User wird statt dessen die Login-Seite angezeigt.

Nun habe ich aber das Problem, dass aufgrund des Einbindens der Tiles meine eigentlich "verbotene" JSP-Seite gar nicht in der URL aufgerufen wird und ich somit auch kein Login-Formular angezeigt bekomme. Bei mir wird sofort der Inhalt der "verbotenen" Seite angezeigt.

Ich habe inzwischen schon über jsp:include anstatt von tiles:insert, über eine seperate Aktionklasse, über einen forward und einen redirect versucht mein Login-Formular angezeigt zu bekommen - NICHTS.

Vielleicht kann mir ja hier jemand weiterhelfen.
Nachfolgend noch ein paar Auszüge aus den rel. Dateien:

*web.xml:*


> security-constraint>
> <web-resource-collection>
> <web-resource-name>TEST</web-resource-name>
> <url-pattern>/jsp/layout/header.jsp</url-pattern>
> ...




*struts-config:*


> <action path="/navigation" type="com.yourcompany.struts.action.NavigationAction">
> <forward name="notLoggedIn" path="/jsp/layout/header.jsp" />
> </action>





*tiles-defs.xml:*


> <definition name="page.default" path="/jsp/layout/layout.jsp">
> <put name="title" value="JDBCRealm" />
> <put name="userNavigation" value="/navigation.do"  />
> <put name="footer" value="/jsp/layout/footer.jsp" />
> ...




*Navigation-Action:*


> public ActionForward execute(
> ActionMapping mapping,
> ActionForm form,
> HttpServletRequest request,
> ...


----------



## KSG9|sebastian (22. Jan 2007)

Hm..meines Wissens zieht der AUTH nur wenn der entsprechende Servletfilter anspringt.
Du könntest in der Klasse über den RequestDispatcher die Seite anfordern. Dann müsste eigentlich der Filter ansprechen und die Loginseite kommen.


----------



## di3u (22. Jan 2007)

öhm...ehrlich gesagt kann ich mit dem "RequestDispatcher" nicht so wirklich viel anfangen.
Was ich inzwischen nachgegoogelt habe ist die eigentliche Implementierung:


```
RequestDispatcher dispatcher = context.getRequestDispatcher("/reload.htm");
dispatcher.forward(request, response);
```

Aber wie bau ich die in meine Action-Klasse ein? Stehe gerade etwas auf dem Schlauch


----------



## KSG9|sebastian (22. Jan 2007)

in der Action:


```
RequestDispatcher rd = super.getServlet().getServletContext().getRequestDispatcher("/reload.htm");
dispatcher.forward(request, response);
```

Das war's dann schon


----------



## KSG9|sebastian (22. Jan 2007)

Du musst halt noch ein
"return mapping.findForward(..)" dranhängen. Ist aber egal was da kommt da dass Forward nicht angezogen wird.


----------

