小编Tob*_*now的帖子

如何在JAX-RS中手动映射枚举字段

如何{"status" : "successful"}在JAX-RS中自动映射一个简单的JSON对象映射到我的Java Enum?

public enum Status {
    SUCESSFUL ("successful"), 
    ERROR ("error");

    private String status;

    private Status(String status) {
        this.status = status;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您需要进一步的细节请随时问:)

java mapping json jax-rs

14
推荐指数
2
解决办法
8975
查看次数

错误:传递给持久化的分离实体 - 尝试持久化复杂数据(Play-Framework)

我有一个问题,通过播放框架持久化数据.也许不可能取得这样的结果,但如果它能起作用那将是非常好的.

简单:我有一个复杂的模型(Shop with Addresses),我想立即用地址更改商店并以相同的方式存储它们(shop.save()).但是错误detached entity passed to persist发生了.

Udate历史 05.11

  • 05.11

    • 使用属性更新Model Shop mappedBy="shop"
    • 更新谷歌用户组的链接
  • 09.11

    • 找到一种解决方法,但它不是通用的
  • 16.11

    • 更新示例html表单,感谢@Pavel
    • 将解决方法(更新09.11)更新为通用方法,感谢@ mericano1
  • 21.11
    • 我放弃了试图寻找解决方案并等待播放2.0 ...

Dateil:我尝试将问题减少到最低限度:
型号:

@Entity
public class Shop extends Model {

    @Required(message = "Shopname is required")
    public String shopname;

    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="shop")
    public List<Address> addresses;

}
Run Code Online (Sandbox Code Playgroud)


@Entity
public class Address extends Model {

    @Required
    public String location;

    @ManyToOne
    public Shop shop;
}
Run Code Online (Sandbox Code Playgroud)

现在我的前端代码:

#{extends 'main.html' /}

#{form @save(shop?.id)}

    <input type="hidden" name="shop.id" …
Run Code Online (Sandbox Code Playgroud)

java hibernate playframework

10
推荐指数
1
解决办法
5737
查看次数

JAAS - Java EE 6中的Java编程安全性(不带@DeclareRoles)

Java Security是我过去几周的主要话题,我归档了以下内容:

  • 定制阀Authentificator(extends AuthenticatorBase)
  • jBoss(extends UsernamePasswordLoginModule)的自定义登录模块
  • 安全端点(JAX-RS)

我的主要问题是,我的端点只能使用注释@DeclareRoles,如果我不使用它,我就无法通过身份验证.详细地说,该方法AuthenticatorBase.invoke(来自org.apache.catalina.authenticator)调用该方法,RealmBase.hasResourcePermission然后检查角色.

由于我不使用任何预定义角色,因此检查将失败.

我的问题:有没有办法使用这样的代码:

@Path("/secure")
@Stateless
public class SecuredRestEndpoint {  

    @Resource
    SessionContext ctx;

    @GET
    public Response performLogging() {

        // Receive user information
        Principal callerPrincipal = ctx.getCallerPrincipal();
        String userId = callerPrincipal.getName();

        if (ctx.isCallerInRole("ADMIN")) {
            // return 200 if ok
            return Response.status(Status.OK).entity(userId).build();
        }
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

一些额外的背景:只要用户名被转发(X-FORWARD-USER),就需要使用反向代理进行身份验证.这就是为什么我使用自己的Authenticator类和自定义登录模块(我没有任何密码凭据).但我认为应用服务器本身的标准身份验证方法也会出现问题

java jax-rs jaas java-ee-6 jboss7.x

9
推荐指数
1
解决办法
4947
查看次数

Jira 5.2 Seraph SSO登录反向代理

几天后,我正在尝试为Jira 5.2启用SSO,并且发现,Jira的帮助页面已经过时了.

每个示例都使用旧版本的atlassian-seraph(Jira 5.2使用2.6.0).

目标: 如果我登录Webseal(反向代理),我想自动登录Jira.

背景:

序列图

  • Jira是反向代理的背后(见图).
  • 此代理验证用户并保持会话.
  • 如果我已登录,我也希望登录Jira
  • 提供的唯一信息是用户名

题:

如何编写自定义登录模块,从http_header读取用户名并验证用户身份?

链接:

reverse-proxy jira webseal single-sign-on

9
推荐指数
1
解决办法
5089
查看次数

新玩!遇到问题:请使用@ javax.persistence.Entity注释注释您的JPA模型

新玩,只是想跟随视频:http://www.playframework.org/

我到目前为止,我想在创建Task-class后创建任务列表.我什么时候重装我得到这个错误:

"发生了UsupportedOperationException:请使用@ javax.persistence.Entity注释注释您的JPA模型."

我正在使用Eclipse.另请注意,我已将任务更改为以下人员:

我在Person.java中的Person模型/类定义

    package models;

    import play.*;
    import play.db.jpa.*;
    import javax.persistence.*;
    import java.util.*;

    public class Person extends Model{
        public String title;
        public boolean done;

        public Person(String title){
            this.title = title;
        }
    }
Run Code Online (Sandbox Code Playgroud)

和application.java:

    package controllers;

    import play.*;
    import play.mvc.*;
    import java.util.*;
    import models.*;

    public class Application extends Controller {

        public static void index() {
            List persons = Person.find("order by id desc").fetch();
            render(persons);
        }
    }
Run Code Online (Sandbox Code Playgroud)

错误与此行相关联:List persons = Person.find("by id desc").fetch();

jpa model playframework

3
推荐指数
1
解决办法
1379
查看次数

如何测试使用 Infinispan (JBoss 7 + Arquillian) 的 JAX-RS 应用程序

信息:我的应用程序是一个简单的 JAX-RS 服务,它将一些值存储在 JBoss 7.1 提供的缓存中。

我想使用 Arquillian 调用服务并测试响应。但不幸的是,当我尝试运行测试时出现此错误:

java.lang.IllegalArgumentException: 
Can not set org.infinispan.manager.CacheContainer field 
com.company.DataCache.container to 
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager
Run Code Online (Sandbox Code Playgroud)

这是我的 DataCache 类:

@ManagedBean
public class DataCache<K, V> {

  @Resource(lookup="java:jboss/infinispan/container/hibernate")
  private CacheContainer container;
  private Cache<K, V> cache;

  @PostConstruct
  public void start() {
      this.cache = this.container.getCache();
  }

  public Cache<K, V> getCache() {
      return cache;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的测试类看起来像这样:

@RunWith(Arquillian.class)
@RunAsClient
public class SyncClientServerTest extends RbmlClientServerTest {

    @Deployment(testable = false)
    public static WebArchive createDeployment() {
        MavenDependencyResolver mvnResolver = DependencyResolvers.use(MavenDependencyResolver.class).loadMetadataFromPom("pom.xml").goOffline();

        return ShrinkWrap
            .create(WebArchive.class, "cache-service.war")
            .addPackages(true, …
Run Code Online (Sandbox Code Playgroud)

dependency-injection exception infinispan jboss-arquillian jboss7.x

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