Java tutorial
/* * This file is part of EasyExchange. * * (c) 2014 - Machiel Molenaar <machiel@machiel.me> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ package com.mtech.easyexchange.resolver; import com.mtech.easyexchange.annotation.ActiveUser; import com.mtech.easyexchange.dao.IUserDao; import com.mtech.easyexchange.manager.user.IUserManager; import com.mtech.easyexchange.model.User; import com.mtech.easyexchange.user.WebUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; import org.springframework.security.core.Authentication; import org.springframework.web.bind.support.WebArgumentResolver; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; public class CurrentUserResolver implements HandlerMethodArgumentResolver { @Autowired protected IUserManager userManager; @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.getParameterAnnotation(ActiveUser.class) != null && parameter.getParameterType().equals(User.class); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { if (this.supportsParameter(parameter)) { WebUser userDetails = (WebUser) ((Authentication) webRequest.getUserPrincipal()).getPrincipal(); return userManager.getUser(userDetails.getId()); } else { return WebArgumentResolver.UNRESOLVED; } } }