小编Cha*_*ood的帖子

过滤器es6返回数组而不是对象

我有一堆对象数组,我想使用过滤器获取特定对象,但我使用下面的代码得到了数组.

const target = [{
  name: 'abc',
  id: 1
}, {
  name: 'def',
  id: 2
}]

const x = target.filter(o => o.id === 1)
console.log(x)
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs

6
推荐指数
3
解决办法
5491
查看次数

在集成测试期间,Grails null id对约束的错误

Grails 2.2.0

我正在尝试创建自定义约束以强制用户只有一个主电子邮件.以下是导致错误的简化代码:

用户域类

class User {

    static hasMany = [emails: Email]

    static constraints = {
    }
}
Run Code Online (Sandbox Code Playgroud)

电子邮件域类

class Email {

    static belongsTo = [user: User]
    String emailAddress
    Boolean isMaster

    static constraints = {

        emailAddress unique: ['user']
        isMaster validator: { val, obj ->
            return !val || Email.findByUserAndIsMaster(obj.user, true) == null
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

整合测试

class EmailTests {

    @Before
    void setUp() {

    }

    @After
    void tearDown() {
        // Tear down logic here
    }

    @Test
    void testSomething() {
        def john = …
Run Code Online (Sandbox Code Playgroud)

grails integration-testing hibernate constraints grails-2.2

5
推荐指数
1
解决办法
2608
查看次数

将密码哈希从SHA转换为bcrypt

这个问题已在Stack Overflow问题中得到解答,但它并不是Grails特有的,也有点模糊.

我使用Spring Security设置我的Grails应用程序,但显然没有获得最新版本,因为它默认为SHA-256而不是bcrypt.现在我的生产数据带有密码哈希,这似乎是一种不太理想的方法.

启用 bcrypt哈希是一块蛋糕:

Config.groovy > grails.plugins.springsecurity.password.algorithm = 'bcrypt'
Run Code Online (Sandbox Code Playgroud)

但现在我需要应用程序将旧哈希转换为新哈希.从根本上说,我了解当用户登录时,我应该让应用程序检查密码是否为SHA-256哈希值,如果是,则使用bcrypt重新哈希输入的密码.过了一会儿,他们都会升级,代码可以删除.

但是,确定密码哈希值是来自SHA-256还是bcrypt的实际代码是什么?

编辑

也就是说,我调用哈希的实际函数是什么?如何bcrypt(incomingpassword)查看它是否与现有密码哈希匹配?

grails spring-security bcrypt jbcrypt

4
推荐指数
1
解决办法
1733
查看次数

是一个很好的做法,在角度范围内定义类外变量?

在Angualr中看到这些代码是很常见的:

import { Component, OnInit } from '@angular/core';

@Component({
    selector: 'app',
    template: '<div *ngFor="let item of data"></div>'
})
export class App {
    // we define variable here
    data = [1, 2];
    tempData = [3, 4]; //temporary data, not involved in view rendering
}
Run Code Online (Sandbox Code Playgroud)

正如我们所看到的,临时变量不会涉及视图渲染,但临时变量对于我们的应用程序在临时存储数据的使用中也是必需的.

这样写的怎么样:

import { Component, OnInit } from '@angular/core';
const tempData = [3, 4]; //temporary data, not involved in view rendering
@Component({
    selector: 'app',
    template: '<div *ngFor="let item of data"></div>'
})

export class App {
    // we …
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular

0
推荐指数
1
解决办法
1088
查看次数