当前位置: 首页 > 知识库问答 >
问题:

在游戏1.2.5中的注释前使用@?

鲁杜吟
2023-03-14

我希望在向用户发送登录之前检查会话——每个URL请求都会检查这是否来自有效会话——如果不是,请将它们发送到登录页面,否则正常处理。如果用户已经有一个活动会话,我们不会向他们显示登录页面,而是将他们带到预定义的主页。

我在google上搜索了相关内容,知道可以通过在控制器中使用< code>@Before注释来完成,但不知道< code>@Before如何工作以及如何使用?我用的是play 1.2.5。

共有2个答案

陶裕
2023-03-14

Play安全模块开箱即可完成这一任务。它被大多数应用程序使用,并与不同的插件集成。在这里查看文档。

如果您仍然想自己实现它,您可以使用安全代码作为示例。

否则,@之前可以在您的任何控制器静态方法上使用,并且可以访问所有范围对象,包括会话。

贾建茗
2023-03-14

您可以通过这种方式使用@之前:

@Before
static void addUser() {
    User user = connected();
    if(user != null) {
        renderArgs.put("user", user);
    }
}

static User connected() {
    if(renderArgs.get("user") != null) {
        return renderArgs.get("user", User.class);
    }
    // Find your user from session
    String username = session.get("user");
    if(username != null) {
        return User.find("byUsername", username).first();
    } 
    return null;
}

// ~~render your login if the user is not finded in session

public static void index() {
    if(connected() != null) {
         render();
    }
    login();
}

您可以在YOUR_PLAY_DIR/sames-and-测试/预订中找到此示例代码。

正如@emt14所说,您可以更轻松地使用Play安全模块来做到这一点。查看YOUR_PLAY_DIR/samples-and-测试/论坛中的论坛应用示例。

 类似资料:
  • 在Play 2.2中,我创建了GlobalActor制作类 我想将游戏框架升级到 2.5。Play.current在play 2.5中被弃用,所以我使用注入器修改了这个类,但注入器始终为Null。我需要如何使这门课在 Play 2.5 中工作?

  • 我用玩Web应用程序(没什么不寻常的)。Guice用于依赖注入。如何在类构造函数中注入属性值?代码如下。 在当前配置中,如果不运行应用程序,就无法测试。我希望能够在单元测试中实例化。完美的解决方案[从我的角度来看]应该是这样的: 不幸的是,这段代码不起作用,因为Guice没有“my”。bar绑定: 没有绑定使用 @com.google.inject.name.Named(value=my.bar)

  • 我有一把刀: 问题是,当我试图使用DAO进行加载调用时,使用DynamoDBMapper以field d1作为哈希键来获取项目,它会抛出一个DynamoDBExc0019,说:为公共DAO. getField2()找到了空键,但实际上表的值对应于field d2。问题,这是因为Lombok注释而不是手动突变代码,还是一般来说我们一起使用Lombok和DynamoDBAnnotions?

  • 本文向大家介绍python实现坦克大战游戏 附详细注释,包括了python实现坦克大战游戏 附详细注释的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现坦克大战的具体代码,供大家参考,具体内容如下 更多关于python游戏的精彩文章请点击查看以下专题: python俄罗斯方块游戏集合 python经典小游戏汇总 python微信跳一跳游戏集合 以上就是本文的全部内容,希

  • 问题内容: 嗨,我正在尝试使用Math.random生成一个介于0到100之间的随机数,然后要求用户输入一个介于0到100之间的数字或退出-1。如果该数字超出范围(而不是-1),请要求用户输入一个新数字。如果用户没有正确猜出该数字,请告诉用户该随机数是高于还是低于猜出的数字。让用户猜测,直到他们输入正确的数字或​​输入-1。如果他们猜到正确的数字,请告诉用户尝试了多少次,然后重新开始游戏。它将继续

  • 2024.02.26 一面 谈谈两个印象深刻的项目 css隐藏元素的几种方式 通过link引入样式和import有什么区别 跨域是如何产生的,该如何解决跨域 vue缓存数据和组件的方式 面试官只问了几个问题,相对简单。