So erstellen Sie eine Spring Interceptor für Spring RESTful-web-services

Habe ich einige Spring RESTful (RestControllers) web-services ohne web.xml und ich bin mit Spring boot um die Dienste zu starten.

Möchte ich hinzufügen, Autorisierungs-Ebene für die web-services und wollten route, die alle http-requests auf ein front-controller, bevor Sie tatsächlich den Aufruf der web service selbst. (Ich habe einen code zu simulieren Sitzungen Verhalten an den autherisation Ebene, für die überprüfung eines Benutzers, basierend auf einem generierten key, den ich senden mit jedem httpRequest aus dem client).

Ist es irgendein Standard-Spring-Lösung zur Weiterleitung aller Anfragen an einen filter /front-controller?

Vielen Dank im Voraus,
Praneeth

Bearbeiten:
Hinzufügen mein code

Controller:
`

@RestController
public class UserService {
    UserDAO userDAO = new UserDAO();

    @RequestMapping(value="/login", method = RequestMethod.POST)
    @LoginRequired
    public String login(@RequestParam(value="user_name") String userName, @RequestParam(value="password") String password, HttpServletRequest request){
        return userDAO.login(userName, password);
    }
}`

Interceptor:

`

public class AuthenticationInterceptor implements HandlerInterceptor  {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
        throws Exception {
        System.out.println("In Interceptor");
        //return super.preHandle(request, response, handler);
        return true;
    }
    @Override
    public void postHandle( HttpServletRequest request, HttpServletResponse response,
            Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("---method executed---");
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
            Object handler, Exception ex) throws Exception {
        System.out.println("---Request Completed---");
    }
}

`

Schnittstelle.
`

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginRequired {
}

`

Set tocken oder ID im request-header und überprüft haben.

InformationsquelleAutor Praneeth Reddy | 2016-07-13

Schreibe einen Kommentar