Spring Boot/認証/スクラッチ/HelloWorld/090_コード整理

Spring Boot/認証/スクラッチ/HelloWorld/090_コード整理

いろいろコードが長くなってきたので整理する。

Prev

共通をスーパークラスへ移動

共通的に使う資産の記述をスーパークラスへ移動してサブで継承するようにする。

こうする。

public class BaseController {
    @Autowired
    public AuthUser authUser;
    @Autowired
    public HttpSession session;
    @Autowired
    public HttpServletRequest request;
}

使い勝手を考えてとりあえず全部 public にしておく

継承する

全部の Controller で継承する

こんな感じ

@Controller
@RequestMapping("/login")
public class LoginController extends BaseController{
 
    @RequestMapping("")
    @NoAuth
    public String index() {
        System.out.println(authUser.isLoginFlg());
        return "login/index";
    }
    @RequestMapping("/doLogin")
    @NoAuth
    public String doLogin() {
        session.invalidate();
        session = request.getSession(true);
 
        authUser.setLoginFlg(true);
        return "redirect:/hoge";
    }
    @RequestMapping("/doLogout")
    @NoAuth
    public String doLogout() {
        session.invalidate();
        session = request.getSession(true);
 
        authUser.setLoginFlg(false);
        return "redirect:/login";
    }
}

セッションの張替え処理をスーパーへ移設

セッションの張替え処理があるのでこれをスーパーのメソッドとして移設する。

public class BaseController {
    @Autowired
    public AuthUser authUser;
    @Autowired
    public HttpSession session;
    @Autowired
    public HttpServletRequest request;
 
    public void refreshSession() {
        session.invalidate();
        session = request.getSession(true);
    }
}

移設したからそれを使う。

@Controller
@RequestMapping("/login")
public class LoginController extends BaseController{
    @RequestMapping("")
    @NoAuth
    public String index() {
        return "login/index";
    }
    @RequestMapping("/doLogin")
    @NoAuth
    public String doLogin() {
        this.refreshSession();
        authUser.setLoginFlg(true);
        return "redirect:/hoge";
    }
    @RequestMapping("/doLogout")
    @NoAuth
    public String doLogout() {
        this.refreshSession();        
        authUser.setLoginFlg(false);
        return "redirect:/login";
    }
}

Next

java/spring/spring_boot/auth/scratch/helloworld/090_refactor.txt · 最終更新: 2019-06-28 11:07 by ore