我已经找到了如何散列某个密码并使用SpringMVC将其保存在数据库中:
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String pw = passwordEncoder.encode("test");
Run Code Online (Sandbox Code Playgroud)
现在的问题是,我如何验证来自请求的密码,让用户登录我的网络应用程序?经过一些研究,我看到,有很多方法可以做到这一点.一些解决方案适用于用户角色.
我的webapps应该做的是为我的用户提供一个他们可以注册的登录页面(这里我将使用上面显示的代码保存密码).注册后,他们应该能够登录,这意味着我需要从登录表单验证密码.那里有最先进的例子吗?
我希望打字稿将我的* .ts文件转换为umd * .js文件。问题是我无法在纯JavaScript环境中使用模块,因为这些模块赢得了t be set into thewindow对象。
tsconfig.json
{
"compilerOptions": {
"module": "umd",
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true
},
"include": [
"src/**/*.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
src / Car.js
export default class Car {
drive() {
console.log('Driving');
}
}
Run Code Online (Sandbox Code Playgroud)
生成的js文件:
(function (dependencies, factory) {
if (typeof module === 'object' && typeof module.exports === 'object') {
var v = factory(require, exports); if (v !== undefined) module.exports = v;
}
else if (typeof define === 'function' && define.amd) {
define(dependencies, …Run Code Online (Sandbox Code Playgroud) 我有2个实体“用户”和“组”。实际上,这是一个ManyToMany关联,但是我想在关系表中保留其他信息,例如created或userid。
因此,我发现必须引入一个新实体来表示关系表“ UserGroup”。
表格:
用户名,名称,密码
群组 ID,名称
用户组 ID,用户ID,组 ID,创建的,创建的用户 ID
实体:
@Entity
@Table(name="user")
public class User {
@OneToMany(mappedBy="user")
List<UserGroup> groups;
}
@Entity
@Table(name="group")
public class Group {
@OneToMany(mappedBy="group")
List<UserGroup> users;
}
@Entity
@Table(name="usergroup")
public class UserGroup {
@ManyToOne
User user;
@ManyToOne
User group;
@Column(name="created")
Date created;
// ...
}
Run Code Online (Sandbox Code Playgroud)
现在由于域驱动设计,我不得不在我的用户实体方法中引入诸如:User :: addGroup(group),User :: removeFromGroup(group)。但是从技术上讲这似乎是不可能的,因为我需要创建一个UserGroup实体,注入User和Group对象,最后将其与EntityManager持久化。
是否有更优雅的解决方案,还是我真的必须在服务对象中的实体之外执行此操作?
(有了ManyToMany,我可以在实体中执行此操作。)