When we hit a rest api url using digest authentication it invokes DigestAuthenticationFilter.java class
We can customise this class for some custome verification like signature or certificate. Then we need to set a result attribute to request then we use the following code.
Now we can access isVerified request attribute that set in filter class.
//CustomDigestAuthenticationFilter.java public class CustomDigestAuthenticationFilter extends DigestAuthenticationFilter { private static Logger logger = LoggerFactory.getLogger(CustomDigestAuthenticationFilter.class); @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { req.setAttribute("isVerified",true); super.doFilter(req, res, chain); } }
Now we can access isVerified request attribute that set in filter class.
//AuthenticationController.java @RestController public class AuthenticationController { @Autowired private UserService userService; @RequestMapping(value = "/login", method = RequestMethod.GET) public @ResponseBody User authenticate(HttpServletRequest request) { User user =new User(); Authentication auth = SecurityContextHolder.getContext().getAuthentication(); System.out.println(" Request Attribute "+request.getAttribute("isVerified")); return user; } }
0 Comments