ViewController.java
package org.flasby.christmas;
import org.flasby.entity.Authority;
import org.flasby.security.AssertAuthority;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.extern.log4j.Log4j2;
@Log4j2
@Controller
public class ViewController {
// @Autowired
// private PresentsRepository pr;
public static final String ADMIN_PAGE = "admin";
public ViewController() {
log.debug("Starting the ViewController");
}
// Login form
@GetMapping("/login.html")
public String loginX() {
return "login.html";
}
// Loggedout
@GetMapping("/loggedout.html")
public String loggedOut() {
return "loggedout.html";
}
@GetMapping("/error")
public String error() {
return "error";
}
@GetMapping("/login")
public String login() {
return "login";
}
@GetMapping({ "/index", "/" })
public String index() throws JsonProcessingException {
// goat.pushDataEverywhere("changed", getPresentsAsJSON());
return "index";
}
@GetMapping({ "/forgotPassword" })
public String forgotPassword() {
return "forgotPassword";
}
// @RolesAllowed("ADMIN")
@GetMapping({ "/" + ADMIN_PAGE })
public String admin(Model model) {
AssertAuthority.in(Authority.ADMIN);
return ADMIN_PAGE;
}
@GetMapping(path = "/http-ping", produces = "application/json")
@ResponseBody
public String httpPing() {
// session.setMaxInactiveInterval(10 * 60); // 10 Minutes
return "{\"pong\":" + System.currentTimeMillis() + "}";
}
@PostMapping(path = "/resetPassword")
public String resetPassword(String userId) {
log.error("restPassword not implemented");
return "passwordReset";
}
@GetMapping(path = "/shoppingList")
public String shoppingList(String userId) {
return "shoppingList";
}
}