Ik heb hier een webapplicatie. Helemaal opgebouwd in Java, communiceert via Hibernate met een SQL Server 2000 databeest. Uitvoer gaat via maverick, opensource, vertaalt Java naar XML wat vervolgens door XSL omgevormd wordt naar HTML.
Het Java gedeelte draait op Macromedia Jrun. Middels de web.xml config file kun je (net zoals bij Tomcat) filters instellen. Deze filters worden heel simpel gedefinieerd:
Vervolgens kun je filter-mappings aanmaken, als volgt:
Met als gevolg dat alle requests naar /applicatie/* (wildcard) middels de klasse LoginFilter gefilterd worden. In dit geval resulteert een eerste aanroep naar een loginscherm, want er is niet ingelogd.
Nu is de applicatie verdeelt in een 40tal commandos. Elk commando is gekoppeld aan een controller (in de maverick config). Tevens is er voor elk commando een filter-mapping aangemaakt. Bijv:
Met als resultaat dat een aanroep naar gegevens.m gefilterd wordt door WerknemerFilter, die er weer voor zorgt dat niemand bij de gegevens kan, mits er voldoende rechten zijn.
De filters worden in volgorde afgehandeld. Een direct aanroep naar gegevens.m zal dus niet bij WerknemerFilter terecht komen omdat LoginFilter er voor zit. Pas als de gebruiker ingelogd is, en door LoginFilter heenkomt wordt WerknemerFilter aangeroepen.
Nu mijn probleem. Ik heb voor +/- 40 commandos zo'n mapping aangemaakt, naar verschillende filters (werknemer, manager, directeur). Alles werkt naar behoren, behalve: na 32 filter mappings werken de mappings niet meer. filtermapping nr 33 wordt niet meer afgedwongen, alleen LoginFilter is daarvoor nog werkzaam. Nr 34 en hoger worden door een verkeerd filter gefilterd ??
Bijv. filter-mapping 35 is gekoppeld aan DirecteurFilter, maar wordt gefilterd door WerknemerFilter, terwijl die nergens in het config bestand (web.xml) aan elkaar gekoppeld zijn.
Iemand een idee? Door het aantal wel werkende filters(32) vermoed ik een instelling in een configbestand, lijkt me typisch een standaard max waarde oid. Ik heb echter nog niks zinnig kunnen vinden.
Het Java gedeelte draait op Macromedia Jrun. Middels de web.xml config file kun je (net zoals bij Tomcat) filters instellen. Deze filters worden heel simpel gedefinieerd:
code:
1
2
3
4
| <filter> <filter-name>LoginControle</filter-name> <filter-class>bloeh.bla.LoginFilter</filter-class> </filter> |
Vervolgens kun je filter-mappings aanmaken, als volgt:
code:
1
2
3
4
| <filter-mapping> <filter-name>LoginControle</filter-name> <url-pattern>/applicatie/*</url-pattern> </filter-mapping> |
Met als gevolg dat alle requests naar /applicatie/* (wildcard) middels de klasse LoginFilter gefilterd worden. In dit geval resulteert een eerste aanroep naar een loginscherm, want er is niet ingelogd.
Nu is de applicatie verdeelt in een 40tal commandos. Elk commando is gekoppeld aan een controller (in de maverick config). Tevens is er voor elk commando een filter-mapping aangemaakt. Bijv:
code:
1
2
3
4
5
6
7
8
| <filter> <filter-name>WerknemerFilter</filter-name> <filter-class>bloeh.bla.WerknemerFilter</filter-class> </filter> <filter-mapping> <filter-name>WerknemerFilter</filter-name> <url-pattern>/applicatie/gegevens.m</url-pattern> </filter-mapping> |
Met als resultaat dat een aanroep naar gegevens.m gefilterd wordt door WerknemerFilter, die er weer voor zorgt dat niemand bij de gegevens kan, mits er voldoende rechten zijn.
De filters worden in volgorde afgehandeld. Een direct aanroep naar gegevens.m zal dus niet bij WerknemerFilter terecht komen omdat LoginFilter er voor zit. Pas als de gebruiker ingelogd is, en door LoginFilter heenkomt wordt WerknemerFilter aangeroepen.
Nu mijn probleem. Ik heb voor +/- 40 commandos zo'n mapping aangemaakt, naar verschillende filters (werknemer, manager, directeur). Alles werkt naar behoren, behalve: na 32 filter mappings werken de mappings niet meer. filtermapping nr 33 wordt niet meer afgedwongen, alleen LoginFilter is daarvoor nog werkzaam. Nr 34 en hoger worden door een verkeerd filter gefilterd ??
Bijv. filter-mapping 35 is gekoppeld aan DirecteurFilter, maar wordt gefilterd door WerknemerFilter, terwijl die nergens in het config bestand (web.xml) aan elkaar gekoppeld zijn.
Iemand een idee? Door het aantal wel werkende filters(32) vermoed ik een instelling in een configbestand, lijkt me typisch een standaard max waarde oid. Ik heb echter nog niks zinnig kunnen vinden.