标签: scalatra

Scalatra的OAuth2提供程序或Scala中的Play框架

是否有可用于Scala的OAuth2提供程序,我可以使用Scalatra或Play2 Web框架?

我已经看到了这个答案:Scala/Lift的OAuth 2.0提供程序实现

我正在寻找提供程序库而不是OAuth2.0客户端库.

编辑:

我正在寻找Scala OAuth2.0 Provider:http://tuxdna.in/blog/2014/07/09/oauth2-dot-0-server-using-play-2-dot-0-framework-in-斯卡拉/

scala oauth-2.0 scalatra playframework-2.0

8
推荐指数
1
解决办法
3576
查看次数

加速SBT组装

我们有一个项目,我们正在建设的大量Scalatra的 微服务使用它们打包SBT组装插件,然后创建一个使用泊坞窗图像SBT-泊坞窗插件.由于微服务的数量,该过程很慢,因为程序集插件必须处理每个服务的所有传递依赖性.但是我注意到大多数微服务具有非常相似的依赖性.有什么方法可以加快速度吗?

一个限制是我们在Jenkins(CI)服务器上这样做,所以我们sbt clean在开始时调用所以我们无法利用任何缓存?

scala sbt scalatra jenkins sbt-assembly

8
推荐指数
1
解决办法
2966
查看次数

IntelliJ远程调试器连接,但断点不起作用

我正在尝试Scala Web框架Scalatra.根据这里的文档,启用IntelliJ调试的步骤是:

  1. 添加常用的JDK选项进行远程调试: "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
  2. 在Intellij中创建"远程"运行配置
  3. 启动sbt,运行jetty:start,然后启动远程调试器

当我这样做时,SBT打印出来:

Listening for transport dt_socket at address: 5005

和IntelliJ打印:

Connected to the target VM, address: 'localhost:5005', transport: 'socket'

但是,断点似乎不起作用.当我点击以下端点时,断点位于*:

class AppServlet extends AppStack {
  get("/break-test") {
*   val response = "DONE"
    response
  }
}
Run Code Online (Sandbox Code Playgroud)

代码不会在该行停止,但会继续,以便我得到响应DONE.

我使用的是Java 1.8.0_111,Scala 2.12和SBT 0.13.15.

java debugging intellij-idea sbt scalatra

8
推荐指数
2
解决办法
7681
查看次数

如何在sbt中设置多阶段测试管道?

具体来说,对于Scalatra项目,但问题可能适用于大多数.

例如,我通常想要运行:

  • 单元测试
  • 代码质量检查(覆盖范围,重复,复杂性,jsLint!)
  • 集成测试(不是太多!)
  • 验收测试(通常是"预签入"子集)
  • 回归测试(基本上与验收测试相同,但更大的一组)
  • 性能测试

我想通过上下文运行这些子集的不同子集 - 即在简单的代码更改后,我可能只运行前三个; 在签入之前我可能想要运行更大的集合,而持续集成服务器可能具有"快速"和"慢"构建,其具有更大的集合.

基本的sbt文档似乎假设一个"测试"目标 - 是否有推荐的方法来实现这样的多个测试阶段?

scala sbt scalatra

7
推荐指数
1
解决办法
625
查看次数

dropwizard与喷雾或scaratra相比如何?

以上3个框架如何比较

1)性能2)易用性3)真实世界测试

和其他相关参数?

scala akka scalatra

7
推荐指数
0
解决办法
1096
查看次数

为什么jquery将json作为参数名而不是作为请求体发布?

对于具有RESTful后端的webapp,我使用jquery的$ post将一些json发布到服务器.令我惊讶的是,json被填充在请求的表单数据的参数键中,而不是在请求体中.我可以想到其他一些方法,但问题是为什么它不能像我期望的那样工作.

在服务器上我使用scalatra并打印一些请求信息:

println("Request received:")
println(fromInputStream(request.getInputStream).getLines().mkString)
println("--------------")
println(request.getParameterMap.toString)
println("==============")
Run Code Online (Sandbox Code Playgroud)

现在一个简单的卷曲,我认为是正确的:

curl -X POST http://localhost:8080/x -H "Content-Type: application/json" -d '{"a":"b"}'
Run Code Online (Sandbox Code Playgroud)

生产:

Request received:
{"a":"b"}
-------------
{}
==============
Run Code Online (Sandbox Code Playgroud)

并用html + js来说明问题:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<body>
  <button type="button" onclick="doPost()">
    POST
  </button>
  <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
  <script type="text/javascript">
function doPost() {
    $.post("http://localhost:8080/x",     
           JSON.stringify({"a":"b"} ), 
           function(data) {});
}
  </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

生产:

Request received:

--------------
{{"a":"b"}=[Ljava.lang.String;@7a2897ac}
============== 
Run Code Online (Sandbox Code Playgroud)

因此,如果我使用带有字符串化的json字符串和回调的$ post,我会将所有内容填充到单个参数键中.如果这是正常的,我想知道为什么,以及我应该如何在服务器上彻底解开这个问题.如果不正常,我想知道我应该怎么做才能使用$ post在响应体中获取它.

更新:现在有一个jquery功能请求,以支持$ .post上的contentType

rest jquery json scalatra

7
推荐指数
1
解决办法
5155
查看次数

将OAuth添加到Scalatra Web服务

我希望构建一个基于Scalatra的API.其中一项要求是OAuth身份验证.我注意到OAuth的指南尚未在Scalatra官方网站上发布.通过弄清楚如何将基于OAuth的策略添加到Warden中,目前是添加OAuth支持的最佳方式吗?我来自Ruby on Rails的背景,因此很多Scala/Java约定都是新的.可能有几种方法可以解决这个问题,但是我希望有任何解决方案可以在我自己的应用程序中进行实施.

scala oauth warden scalatra

7
推荐指数
1
解决办法
572
查看次数

Scalatra/Slick并插入IF NOT EXISTS

我是一个新手,所以希望有一些耐心.:)

如果某个值不存在,我会尝试填充两个表.基本上我有:

TABLE b
(
    id VARCHAR(254) PRIMARY KEY NOT NULL
);


TABLE d
(
    id VARCHAR(254) PRIMARY KEY NOT NULL,
    relay INT NOT NULL,
    FOREIGN KEY ( relay ) REFERENCES b ( id )
);
Run Code Online (Sandbox Code Playgroud)

所以我正在尝试编写一个函数,用一个新值填充两个表,如果它不存在,或者忽略它,否则......当然包含在一个事务中:

IF (NOT EXISTS(SELECT * FROM b where id='something'))
    insert into b values('something')
    insert into d values(1, 'something')
END
Run Code Online (Sandbox Code Playgroud)

实现这样的目标最有效的方法是什么?如果重要的是我正在使用POstgreSQL 9.1,但我想保持它相当通用.

(编辑)这些是我当前的表格defs(为简化说明而简化):

object d extends Table[(String, String, Int)]("d")
{
  def id=column[String]("id", O.PrimaryKey)

  def relay=column[Int]("relay")
  def relay_ref=foreignKey("d2b.fk", relay, b)(_.id)
  def * = id ~ relay …
Run Code Online (Sandbox Code Playgroud)

database scala scalatra slick

7
推荐指数
1
解决办法
3640
查看次数

Scala web框架性能上覆盆子pi

我需要编写一个基于Web的小型UI,它可以运行raspi,因为我试图将一些Scala拉入我的日常工作中,我想使用其中一个Play,Scalatra或者Lift.有没有人有使用这些框架开发Raspberry Pi的经验?如果是这样,哪一个在性能方面更合适?

scala lift playframework scalatra raspberry-pi

7
推荐指数
1
解决办法
3795
查看次数

使用JSON4S对Scala中的案例对象进行反序列化

我有一些案例类定义如下:

sealed trait Breed
case object Beagle extends Breed
case object Mastiff extends Breed
case object Yorkie extends Breed

case class Dog(name: String, breed: Breed)
Run Code Online (Sandbox Code Playgroud)

我还有一个使用Scalatra定义的端点:

post("/dog") {
  val dog = parsedBody.extract[Dog]
  ...
}
Run Code Online (Sandbox Code Playgroud)

我想要这个JSON对象:

{
  name: "Spike",
  breed: "Mastiff"
}
Run Code Online (Sandbox Code Playgroud)

反序列化到适当的实例Dog.我正在努力弄清楚如何编写自定义反序列化器Breed并将其注册到JSON4S.

json scala scalatra json4s

7
推荐指数
1
解决办法
4857
查看次数