
2021SC@SDUSC
文章平均质量分 64
widealpha
这个作者很懒,什么都没留下…
展开
-
学生能力提升平台注册邮件发送
在spring中使用邮件发送原创 2022-06-12 22:20:31 · 258 阅读 · 0 评论 -
Spring Security权限控制(三)
JWT 是一个很长的字符串,由 分割为三段Header(头部)存储 JWT 的元数据,与生成 Token API 中的 对应Payload(负载数据)存放需要实际传递的数据,官方定义了7个官方字段Signature(签名)是对前两部分的签名,防止数据篡改通过工具类可以十分便捷的获取到所有的token的属性等数据依然首先是通过config进行注入配置在这里代码里把filter放置在Logout之前,是因为logout是需要鉴权的操作,每次logout都必须有授权才能logout这里通过配置filter原创 2022-06-12 00:15:45 · 485 阅读 · 0 评论 -
Spring Security权限控制(二)
这个项目采用了已登录用户身份认证token校验,以及未登录用户用户名密码校验方式,初次查看Config时候没有发现在什么地方配置了Token以及Username/password的校验,经过对源码的逐行分析,发现了这几行是一个很复杂的类,继承自AbstractHttpConfigurer,也是一个配置文件,源码中仅有 与 两个方法,对于基类而言只是一个单纯的容器类,用以装载具体的配置信息。在父类的基类中,有以下几个比较重要的方法init方法用以初始化配置容器configure()方法用来具体配置原创 2022-06-12 00:15:00 · 269 阅读 · 0 评论 -
Spring Sercurity权限控制(一)
spring security 的核心功能主要包括:其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在spring security中一种过滤器处理一种认证方式。允许未经授权即可访问的接口这一段代码允许了所有不经过SpringSercurity即可访问访问的接口,包含登录,注册等。利用登录注册的过程是本省就不要任何权限就能做的。标明除此上一段代码排除的白名单外所有的接口均是需要鉴权的禁用csrf以及ses原创 2022-06-12 00:14:12 · 1016 阅读 · 0 评论 -
判题核心流程图
判题器为实现水平扩展功能采用了springboot + native code的方式进行开发。利用异步分发机制,通过rabbitmq实现异步队列,保持水平扩展性。整体流程如下核心交互的实体类如下判题器任务转换对于判题器的内部接收到任务将转化成判题器支持的任务形式对于获取题目测试点当判题器收到判题请求执行一下流程,对题目进行运行的程序进行沙箱的封装以及判定...原创 2022-06-12 00:10:01 · 384 阅读 · 0 评论 -
JS加载二进制流图片
如果用的是axios,要设置responseType为"arraybuffer"原创 2022-06-11 23:53:19 · 2266 阅读 · 0 评论 -
Clion使用makefile编译并调试程序
假设在项目目录下已经有了Makefile文件和hello.cppMakefile:打开编辑配置界面[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OhRVFi3M-1654962430188)(https://gitee.com/widealpha/pic/raw/5407a7f294da9cd07dc27eec47d0c76110dce2f6/image-20211217193605053.png)]新建Makefile Target按照下图填写[外链图片转存失败,源站可原创 2022-06-11 23:52:27 · 2000 阅读 · 1 评论 -
OJ平台产品文档
用户[用户名(username), 密码,userId]{性别,学号,年龄,邮箱,头像}登录(用户名登录,邮箱登录)注册(邮箱注册)用户分组编程题[题目名称, 题目描述(详细信息,提示), 题目示例, 时间, 题目类型(客观, 编程题,主观),题目标签(树,图…), 题目状态(public, private), 作者,难度]{}出题主观/客观题题目集(作业形式)题目集(测验形式)[名称, 创建时间, 作者, 题目集状态(protected, private)]{使用范围, 持续时间}出题目集查看作答状态原创 2022-06-11 22:03:56 · 236 阅读 · 0 评论 -
rabbitmq同步传输的使用
同步请求设置首先注入Templete同步请求传输首先判断入参合法性进行参数转换以及数据库入参出参查询校验对象序列化处理以及检验同步传输以及校验处理原创 2022-06-11 19:16:39 · 401 阅读 · 0 评论 -
rabbitmq异步消息传递的使用
通过配置rabbitmq的config以及rabbitmq的templete实现更自由的定制,实现重发机制等建立实体类service判题采用异步机制,因为多个测试点可能花费许多时间,所以异步传输机制receiver注册receiver,实现异步消息的接受使用异步消息接受机制,减少了服务器的压力,更便于逻辑的实现...原创 2022-06-11 15:58:45 · 1131 阅读 · 0 评论 -
seccomp实现安全判题沙箱
软件判题器需要一下几点直接返回值结果创建限制与返回结果按照判题器的要求创建资源限制,返回结果以及判题器的配置文件创建判题器核心rlimitlinux下对资源进行限制的函数是位于**下的getrlimit和setrlimit**系统的资源由最初的0号进程获取,后续所有的子进程继承父进程的资源限制每个子进程也可以调用setrlimit改变资源限制rlimit的结构对应的resource参数可选如下:exit code返回的状态码是0表示执行成功对于完整的f...原创 2022-06-10 02:12:33 · 1391 阅读 · 0 评论 -
使用Sandbox2封装应用
按照sandboxed-api进行配置环境,简单来说是下面两步安装Git,Gcc,G++运行以下命令编译example跳转到git clone的sandboxed-api的目录,执行下列命令进行编译运行sandbox2的tool example运行成功结果如下沙箱调用可执行文件创建需要用沙箱运行的程序创建hello.cpp编译hello.cpp生成可执行文件,并运行创建沙箱执行器新建c++项目创建main.cpp作为启动文件写入CMakeList.txt运行程序原创 2022-06-10 02:03:21 · 415 阅读 · 0 评论 -
使用Google Sandboxed-api
Sandboxed-api是google推出的开源沙箱SandBox2的封装,能共更为方便的实现沙箱的安全操作Github仓库链接如下 sandboxed-apiGoogle官方给出的需求如下首先安装gcc,g++,cmake,make等编译工具链,以及git仓库管理工具执行命令,克隆sandboxed-api仓库Example编译&使用Clone下来的项目自带了一些example,我们可以先从这些demo入手,看是如何使用的输出如下的结果,环境搭建就算成功了整体项目编译&测试测试原创 2022-06-10 02:02:17 · 543 阅读 · 0 评论 -
Spring Integration sftp
在pom.xml中添加以下依赖,使用spring-integration-sftp核心组件spring integration sftp 是 spring integration 框架中的 sftp 的模块。基于com.jcraft.jsch执行sftp命令SftpSessionFactory:Sftp客户端与服务器连接的工厂,每次与Sftp服务器端建立连接均会执行工厂建立新的session连接,这些连接可以被缓存下来,以便下次快速连接。同时支持session共享可以在一个连接上执行多种操作SftpSe原创 2022-06-10 01:55:44 · 1121 阅读 · 1 评论 -
学生能力提升平台团队工作与最终结果
学生程序设计能力提升平台力图打造一个师生学习和竞赛培训的在线评测平台。用于为山东大学进行教学活动的辅助平台,以及进行计算机竞赛的模拟训练。功能点包括以下方面:身份认证功能: 学生账号绑定,用户注册,邮箱/学号登录,身份鉴权题目功能: 题目编辑,题目集展示,题目集导入,题目评判,题目排名,教师房间布置题目评判竞赛相关: 计时题目,计分题目,模拟竞赛安全性功能: 管理员账户,数据库备份,使用数据库不删除原则项目由前端,后端判题端三部分组成,每一部分之间通过接口调用实现,可以进行水平调用。前端与后端的调原创 2022-06-02 22:33:55 · 170 阅读 · 0 评论 -
学生能力提升平台绑定学生信息
2021SC@SDUSC学生能力提升平台绑定学生信息excel的生成 /** * @api {GET} /bind/allStudentsBindExcel 绑定信息下载 * @apiVersion 1.0.0 * @apiGroup BindController * @apiName allStudentsBindExcel * @apiDescription 获取所有学生绑定信息的excel(数据量大接口可能会慢) * @apiPe原创 2021-12-26 22:21:29 · 271 阅读 · 0 评论 -
并行设计方法
2021SC@SDUSC这篇文章主要是利用Clion来配置OpenMP的运行环境,当然其他编译器也是可以的,但是对比其他编译器,小编觉得还是Clion的配置过程更加简单。下面就是配置OpenMP的大致过程:目录下载配置CMakeList.txt文件编写一个测试程序在运行踩的坑下载MinGW64CLion配置CMakeList.txt文件openMP 配置FIND_PACKAGE(OpenMP REQUIRED)if (OPENMP_FOUND)message(“OPENMP F原创 2021-12-17 19:07:41 · 784 阅读 · 2 评论 -
开发微信小程序(uniapp)
@2021SC@SDUSCWebStorm开发微信小程序(uniapp)创建项目采用cli方式创建的项目vue create -p dcloudio/uni-preset-vue my-project采用HBuilderX创建的项目在点击工具栏里的文件 -> 新建 -> 项目:选择uni-app类型,输入工程名,选择模板,点击创建,即可成功创建。HBuildX创建的项目可能缺少d.ts在项目执行下面两行命令生成d.tsnpm initnpm i @types原创 2021-12-12 20:18:25 · 11172 阅读 · 3 评论 -
学生能力提升平台注册邮件发送
@2021SC@SDUSC邮件发送系统在项目中的应用原创 2021-12-05 21:58:55 · 238 阅读 · 0 评论 -
idea编译器使用技巧
@2021SC@SDUSC几乎所有软件通用Ctrl+C 复制Ctrl+V 粘贴Ctrl+A 全选Ctrl+F 查找Ctrl+R 替换(支持正则替换)单词相关Ctrl+W 选中单词(连续选中)行相关Ctrl+Y 删除行Ctrl+D 复制行(光标未选中)Ctrl+C 复制行到剪切板Ctrl+Enter 另起一行项目相关Ctrl+O 重写方法Alt+Insert GenerateShift+F6 相关重命名Shift+F10 运行Shift+F9 Debug运行Ctrl+Q原创 2021-11-28 16:53:57 · 410 阅读 · 1 评论 -
能力提升平台中总结出数据库使用技巧
2021SC@SDUSC// todo完善原创 2021-11-21 01:25:22 · 2053 阅读 · 0 评论 -
rabbitmq同步传输
2021SC@SDUSCrabbitmq同步传输的使用rabbitmq同步传输配置rabbitmq同步传输同步请求设置同步请求传输rabbitmq同步传输配置rabbitmq同步传输 @Bean AsyncRabbitTemplate asyncRabbitTemplate(RabbitTemplate rabbitTemplate){ return new AsyncRabbitTemplate(rabbitTemplate); }同步请求设置首先注入T原创 2021-11-14 22:21:11 · 2071 阅读 · 0 评论 -
gcc-multilib在Ubuntu20.04上无法安装
Ubuntu20.04无法安装 gcc-multilib g++-multilib错误内容解决方案错误内容执行sudo apt install gcc-multilib g++-multilib报错sudo apt install gcc-multilib g++-multilib正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造原创 2021-11-09 20:42:44 · 9421 阅读 · 3 评论 -
rabbitmq异步消息传递的使用
2021SC@SDUSCrabbitmq异步消息传递的使用原创 2021-11-07 19:18:43 · 2188 阅读 · 0 评论 -
学生程序设计能力提升平台 Spring Security的应用(三)
2021SC@SDUSC学生程序设计能力提升平台综述 Spring Security的应用(三)@[TOC](学生程序设计能力提升平台综述 Spring Security的应用(三))JSON WEB TOKEN与spring securityjson web token简介JwtUtil工具类ConfigRefreshcontrollerJSON WEB TOKEN与spring securityjson web token简介JWT 是一个很长的字符串,由 . 分割为三段Header(头部)原创 2021-10-21 22:22:09 · 261 阅读 · 0 评论 -
学生程序设计能力提升平台 Spring Security的应用(二)
2021SC@SDUSC学生程序设计能力提升平台综述 Spring Security的应用(二)Token鉴权与Spring SercurityConfigration--JsonLoginConfig用户名密码登录的配置Token鉴权与Spring SercurityConfigration–JsonLoginConfig这个项目采用了已登录用户身份认证token校验,以及未登录用户用户名密码校验方式,初次查看Config时候没有发现在什么地方配置了Token以及Username/password原创 2021-10-14 21:58:21 · 157 阅读 · 1 评论 -
学生程序设计能力提升平台 Spring Security的应用(一)
2021SC@SDUSC学生程序设计能力提升平台 Spring Sercurity的应用Spring security的使用Configration-http/httpsConfigration-corsConfiguration-login/logoutSpring security的使用spring security 的核心功能主要包括:认证 (你是谁)授权 (你能干什么)攻击防护 (防止伪造身份)其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authent原创 2021-10-07 15:37:26 · 352 阅读 · 1 评论 -
学生程序设计能力提升平台综述
学生程序设计能力提升平台综述学生程序设计能力提升平台综述系统运行环境编译环境平台的安装与配置(以ubuntu记录)java环境的安装nginx的安装tomcat的安装配置mysql的安装配置rabitmq安装平台的编译后端前端学生程序设计能力提升平台综述系统运行环境Ubuntu18.04+或主流云服务器系统mysql 8.0+tomcat 9.0.53 (tomcat 10.0以上版本无法运行)nginx 1.16.1+java 1.8rabbitmq 3.7.10+编译环境jav原创 2021-09-30 14:01:40 · 134 阅读 · 0 评论