Spring 3.x - Wie kann ich von einem Mapping, das Daten zurückgibt, umleiten?

8

Ich habe eine Methode in meinem Controller:

%Vor%

Die Daten werden je nach Anforderung als JSON oder xsl zurückgegeben.

Wenn die Person, die die Anfrage stellt, nicht berechtigt ist, auf die Daten zuzugreifen, muss ich den Benutzer auf eine "nicht autorisierte" Seite umleiten, also etwa so:

%Vor%

Alle Beispiele, die ich mit Spring verwendet habe, erfordern, dass die Methode entweder String oder ModelAndView zurückgibt. Ich habe über HttpServletResponse.sendRedirect() nachgedacht, aber alle meine JSPs sind unter WEB-INF und können nicht direkt erreicht werden.

Wie kann ich den Zugriff auf die Datenanforderungs-URL ordnungsgemäß verweigern?

    
Paul 22.01.2012, 18:28
quelle

4 Antworten

5

Eine elegantere Lösung könnte sein um ein HandlerInterceptor zu verwenden, das nach einer Autorisierung sucht und alle Anfragen blockiert, die nicht weiterverfolgt werden dürfen. Wenn die Anfrage dann Ihren Controller erreicht, können Sie davon ausgehen, dass es in Ordnung ist.

    
skaffman 22.01.2012, 18:31
quelle
4

Die Antwort ist unten. Aber Ihr spezieller Fall würde lieber mit anderen Ansätzen umgehen.

%Vor%     
Sergio Kosik 11.12.2014 18:19
quelle
1

Ein anderer Ansatz ist Filter. Sie können die gesamte Sicherheitslogik in einen Filter verschieben und sauberen Code in Controllern behalten.

    
e-zinc 22.01.2012 18:36
quelle
0

Ganz einfach:

Senden Sie einen Fehlerstatus an den Client

%Vor%

und handle das gleiche mit dir Ajax Callback-Handler und Redirect. :)

    
Abhi 22.01.2012 18:44
quelle

Tags und Links