第2篇Scrum冲刺博客

发布时间 2023-04-16 18:02:24作者: Rczzz
软件工程
https://edu.cnblogs.com/campus/gdgy/2023softwareengine
团队GitCode仓库
https://gitcode.net/weixin_56428538/nobugsonlyfeatures
这个作业的目标
<第2篇Scrum冲刺博客>



1 站立式会议照片


2 项目燃尽图


3 代码签入记录


4 最新模块代码及运行截图

  • shiro相关:
    • JwtFilter
@Component
public class JwtFilter extends AuthenticatingFilter {

    @Autowired
    JwtUtils jwtUtils;

    @Override
    protected AuthenticationToken createToken(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){
            return null;
        }

        return new JwtToken(jwt);
    }

    @Override
    protected boolean onAccessDenied(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {

        HttpServerRequest request = (HttpServerRequest) servletRequest;
        String jwt = request.getHeader("Authorization");
        if(StringUtils.isEmpty(jwt)){

            return true;
        } else {

            //校验jwt
            Claims claim = jwtUtils.getClaimByToken(jwt);
            if (claim == null || jwtUtils.isTokenExpired(claim.getExpiration())){
                throw new ExpiredCredentialsException("token已失效,请重新登陆");
            }

            //执行登陆
            return executeLogin(servletRequest,servletResponse);
        }

    }

    @Override
    protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request, ServletResponse response) {

        HttpServletResponse httpServletResponse = (HttpServletResponse) response;

        Throwable throwable = e.getCause() == null ? e : e.getCause();

        Result result = Result.fail((throwable.getMessage()));

        String json = JSONUtil.toJsonStr(result);

        try{

            httpServletResponse.getWriter().print(json);
        } catch (IOException ioException){

        }

        return false;
    }
}
  • AccountRealm
@Component
public class AccountRealm extends AuthorizingRealm {

    @Override
    public boolean supports(AuthenticationToken token){
        return token instanceof JwtToken;
    }

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
        return null;
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {

        JwtToken jwtToken = (JwtToken) token;

        System.out.println("");

        return null;
    }
}
  • JwtToken
public class JwtToken implements AuthenticationToken {

    private String token;

    public JwtToken(String jwt) {
        this.token = jwt;
    }

    @Override
    public Object getPrincipal() {
        return token;
    }

    @Override
    public Object getCredentials() {
        return token;
    }
}

5 每日总结

成员 总结
周睿晨
今天实现了简单的平台内容管理功能,感到难度还是挺高的,后面还要继续努力
樊培岩
学了前端ajax异步提交表单,让我的对前后端交互有更深的了解。
甘坤南
这段时间有很多其他的事情拖延了项目的进度,希望在敏捷冲刺阶段赶上来
黄嘉艺
第一天敲代码,感觉任务有点重,不过最后也能勉强完成,明天继续努力
梁嘉俊
前面做的不算好但是还是有收获,接下来在和组员沟通的基础上改进
钟思捷
项目的截止时间即将来临,今天安排好了后面六天的任务,以免最后这几天忙中出错