Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.ignite.controller; import com.ignite.dao.AccountDao; import com.ignite.dao.ClientDao; import com.ignite.domain.Account; import com.ignite.domain.Client; import java.util.List; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.annotation.Secured; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; @Controller public class IndexController { @Autowired ClientDao clientDao; @Autowired AccountDao accountDao; @Secured("ROLE_CLIENT") @RequestMapping(value = { "/", "/index" }, method = RequestMethod.GET) public ModelAndView index() { return new ModelAndView("index"); } @RequestMapping(value = "/registerClient", method = RequestMethod.POST) public ModelAndView addCLient(@ModelAttribute("client") Client client, BindingResult result) { clientDao.saveClient(client); Account newaccount = new Account(); newaccount.setBalance(100); newaccount.setOwner(client); accountDao.saveAccount(newaccount); List<Client> clients = clientDao.getClients(); return new ModelAndView("teller", "clientList", clients); } @RequestMapping(value = "/logout", method = RequestMethod.GET) public ModelAndView logout() { ModelAndView model = new ModelAndView(); model.setViewName("index"); return model; } @RequestMapping(value = "/login", method = RequestMethod.GET) public ModelAndView login(@RequestParam(value = "error", required = false) String error, @RequestParam(value = "logout", required = false) String logout) { ModelAndView model = new ModelAndView(); if (error != null) { model.addObject("error", "Invalid username and password!"); } if (logout != null) { model.addObject("msg", "You've been logged out successfully."); } model.setViewName("login"); return model; } //for 403 access denied page @RequestMapping(value = "/403", method = RequestMethod.GET) public ModelAndView accesssDenied() { ModelAndView model = new ModelAndView(); //check if user is login Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (!(auth instanceof AnonymousAuthenticationToken)) { UserDetails userDetail = (UserDetails) auth.getPrincipal(); model.addObject("username", userDetail.getUsername()); } model.setViewName("403"); return model; } }