小编Mai*_*ein的帖子

Java Play!2 - 使用cookie进行用户管理

我试图通过cookie管理我的用户.这并不容易,因为绝对没有关于这个主题的文档.

在样本"zentask"的帮助下,我做了这个:

session("username", filledForm.field("username").value());

public class Secured{

    public static Session getSession() {
        return Context.current().session();
    }

    public static String getUsername() {
        return getSession().get("username");
    }

    public static boolean isAuthorized() throws Exception {
        String username = getUsername();
        if (username == null)
            return false;
        long userCount = DatabaseConnect.getInstance().getDatastore()
                .createQuery(User.class).field("username").equal(username)
                .countAll();

        if (userCount == 1)
            return true;

        return false;

    }
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

public static Result blank() throws Exception {

        if (Secured.isAuthorized())
            return ok(Secured.getUsername());
        else
            return ok(views.html.login.form.render(loginForm));

    }
Run Code Online (Sandbox Code Playgroud)

现在我有几个问题/问题:

  • 1.)Cookie不是dectypted,看起来总是一样.例如bdb7f592f9d54837995f816498c0474031d44c1a-username%3Akantaki

  • 2.)Security.Authenticator类有什么作用?

  • 3.)我认为通过cookie进行用户管理是一个非常普遍的问题,确实可以玩!2.0为我提供了完整的解决方案吗?或者至少有一些文件?

java cookies playframework playframework-2.0

6
推荐指数
2
解决办法
7808
查看次数

顶点计数器/顺时针

我正在阅读几本关于OpenGL的书,其中两本书总是逆时针定义顶点.从我读到的内容来看,这非常重要,因为它决定了正面和背面的位置.

但我也正在阅读http://www.arcsynthesis.org/gltut/上的教程,并且他顺时针定义它们.

const float vertexPositions[] = {
    0.75f, 0.75f, 0.0f, 1.0f,
    0.75f, -0.75f, 0.0f, 1.0f,
    -0.75f, -0.75f, 0.0f, 1.0f,
};
Run Code Online (Sandbox Code Playgroud)

我不应该总是使用逆时针符号,因为那是opengl的默认值吗?

另外为什么是a型float?不应该是一个GLfloat

opengl vertices

6
推荐指数
1
解决办法
6310
查看次数

6
推荐指数
1
解决办法
1417
查看次数

一种可以与C++无缝互动的语言?

我喜欢尝试许多不同的编程语言,但我真的永远不会在实际项目中使用它们,因为我需要的所有重要的库都是用C++编写的.

通常我必须编写一个非常耗时的C接口,所以我想知道是否存在可以无缝调用任何C++代码的编程语言?

c++ programming-languages

6
推荐指数
2
解决办法
1374
查看次数

我怎么知道何时使用`const ref`或`in`?

void foo(T, size_t size)(in T[size] data){...}
//vs
void foo(T, size_t size)(const ref T[size] data){...}
Run Code Online (Sandbox Code Playgroud)

根据/sf/answers/18994111/,pass by value在某些情况下,C++似乎更快.

但是D有一个特殊的关键字in,我想知道什么时候应该使用它.是否in总是导致一个副本还是一个编译器优化?

我可以遵循哪些指导方针帮助我决定const refin

d

6
推荐指数
1
解决办法
107
查看次数

repr(C)和repr(rust)有什么区别?

我目前正在编写一个Vulkan渲染器,我刚刚意识到我应该只接受那些类型repr(C),但据我所知,在编译时无法实际检查它.

struct Vertex {
    x: f32,
    y: f32,
    b: Box<f32>
}

#[repr(C)]
struct Vertex2 {
    x: f32,
    y: f32,
    b: Box<f32>
}

fn to_bytes<T>(t: &T) -> &[u8]{
    let p: *const T = t;
    let p = p as *const u8;
    unsafe{
        std::slice::from_raw_parts(p, std::mem::size_of::<T>())
    }
}

fn main() {
    let v = Vertex{x: 42.0, y: 0.0, b: Box::new(42.0)};
    let v2 = Vertex2{x: 42.0, y: 0.0, b: Box::new(42.0)};
    println!("{:?}", to_bytes(&v));
    println!("{:?}", to_bytes(&v2));
}
Run Code Online (Sandbox Code Playgroud)

操场

经过几次尝试,我终于可以看到repr(c)和之间的区别,repr(rust)但只有当我使用了Box …

rust

6
推荐指数
1
解决办法
1594
查看次数

python中的bcrypt

目前我正在尝试构建一个具有很高安全性的登录系统.

所以我想使用bcrypt,我还找到了第三方库 py-bcrypt.

但是作者说这是一个纯粹的python实现.

现在我在某处读到,不推荐在python中使用bcrypt,因为它太慢而导致安全漏洞.bcrypt应该用C实现.

谁能证实这一点?那我该怎么办?

我应该使用:

  • bcrypt(python)
  • SHA512(来自hashlib)
  • 有些不同

我正在使用Google App Engine

编辑: http ://packages.python.org/passlib/lib/passlib.hash.bcrypt.html#bcrypt-backends

应该注意的是,考虑到安全性当前所需的轮次数,pure-python实现(#4)太慢而无法使用.因此,默认情况下禁用它,除非设置了环境变量PASSLIB_BUILTIN_BCRYPT ="enabled".

python security hash bcrypt

5
推荐指数
2
解决办法
9124
查看次数

MongoDB Morphia - 独特

我正在尝试使用一致的数据库,其中用户名和电子邮件是唯一的.

http://www.mongodb.org/display/DOCS/Indexes#Indexes-unique%3Atrue

http://code.google.com/p/morphia/wiki/EntityAnnotation

我的用户类看起来像这样:

public class User {
    @Indexed(unique = true)
    @Required
    @MinLength(4)
    public String username;

    @Indexed(unique = true)
    @Required
    @Email
    public String email;

    @Required
    @MinLength(6)
    public String password;

    @Valid
    public Profile profile;

    public User() {
...
Run Code Online (Sandbox Code Playgroud)

我使用@Indexed(unique = true)注释但它不起作用.我的数据库中仍有重复项.

我有什么想法可以解决这个问题?

编辑:

我读到了关于ensureIndexes但这似乎是一个错误的方法,我不想上传重复数据,只是为了看到它真的是重复.

我想立刻阻止它.

有点像

try{

ds.save(user);
}
catch(UniqueException e){
...
}
Run Code Online (Sandbox Code Playgroud)

java mongodb morphia playframework-2.0

5
推荐指数
2
解决办法
6386
查看次数

在scala中进行基准测试

可能重复:
如何在Java中编写正确的微基准测试?

假设我有两种算法,如何找出哪种算法具有更高的性能?

我的意思是我可以在数学上证明它,但如果我使用一些库,这可能会变得乏味.我没有学过如何在没有数学的情况下做正确的基准.

benchmarking scala

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

如何链接未知库

例如,我正在尝试使用GLFW3,它会向我抛出以下错误

x11_init.c:-1:错误:未定义引用`XIQueryVersion'.

我只知道它与X11有关,但我怎么知道我要链接哪个库?你会如何解决这个问题?

c++

5
推荐指数
2
解决办法
2279
查看次数