java unmarshall LocalDateTime错误

这是我的适配器类: public class LocalDateTimeAdapter extends XmlAdapter { @Override public LocalDateTime unmarshal(String v) throws Exception { return new LocalDateTime(v); } @Override public String marshal(LocalDateTime v) throws Exception { return v.toString(); } } 这是一个对象类,我想存储日期: @XmlAccessorType(XmlAccessType.FIELD) public class Object { @XmlJavaTypeAdapter(LocalDateTimeAdapter.class) private LocalDateTime time; public LocalDateTime getTime() { return time; } 出于某种原因,我无法编译它。 它表明问题是return new LocalDateTime(v); 。 这是我得到的错误: Error:(9, […]

具有角色的经过身份validation的用户的Spring Security Java配置

我试图使用Spring Boot使用Java配置来配置Spring Security。 我的WebSecurityConfig类有一个这样的配置方法 @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers(“/”, “/login”, “/css/**”, “/js/**”, “/img/**”, “/bootstrap/**” ).permitAll() .antMatchers(“/individual”, “/application”, “/upload”).hasRole(“USER”) .and() .formLogin() .loginPage(“/login”) .successHandler(successHandler); } 我为未经身份validation的用户提供了登录页面,并且用户进行了身份validation。 但是,当尝试访问url /个人时,我得到403错误,这在日志中 2015-11-12 13:59:46.373 DEBUG 34468 — [nio-8090-exec-6] osswumatcher.AntPathRequestMatcher : Checking match of request : ‘/individual’; against ‘/’ 2015-11-12 13:59:46.373 DEBUG 34468 — [nio-8090-exec-6] osswumatcher.AntPathRequestMatcher […]

将映射的不同值导出到另一个ObservableList的ObservableList中?

我有一个有趣的问题,我对JavaFX相对较新,我需要创建一个有点利基的ObservableList实现。 本质上,我需要一个ObservableList来维护另一个ObservableList的映射派生值列表。 我需要创建一个ObservableDistinctList ,它接受另一个ObservableList和一个Function lambda作为它的构造函数参数。 ObservableDistinctList维护ObservableList每个元素的应用Function的不同值列表。 例如,假设我有以下实例的ObservableList flights 。 Flt # Carrier Orig Dest Dep Date 174 WN ABQ DAL 5/6/2015 4673 WN DAL HOU 5/6/2015 485 DL DAL PHX 5/7/2015 6758 UA JFK HOU 5/7/2015 如果我从每个Flight对象的载波值创建一个新的ObservableDistinctList,这就是我在客户端这样做的方法。 ObservableDistinctList distinctCarriers = new ObservableDistinctList(flights, f -> f.getCarrier()); 这些将是该distinctCarriers列表中的唯一值。 WN DL UA 如果航class被添加到flights ,它将首先检查在添加flights之前是否实际存在新的不同值。 因此,新的WN航class不会导致对distinctCarriers列表的添加,但AA航class将会增加。 相反,如果航class从flights删除,则需要检查其他实例是否会在删除之前保留该值。 从flights删除WN航class不会导致从distinctCarriers列表中删除WN ,但删除DL航class将导致其被删除。 […]

是否可以禁用RESTEasy的RoleBasedSecurityFilter.java?

我正在开发一个使用JBoss RESTEasy(resteasy-jaxrs-3.0.8)的Web应用程序,但我想禁用RoleBasedSecurityFilter.java并且只使用我自己的自定义SecurityInterceptor类(它也实现了javax.ws.rs.container.ContainerRequestFilter如RoleBasedSecurityFilter类所做的那样,它们都是安全filter。 原因是RoleBasedSecurityFilter.java中的第43行调用了一个isUserInRole()方法 ,该方法在我的应用程序中始终返回false。 结果导致抛出ForbiddenException ,这会阻止用户访问他应该有权访问的资源。 我真的希望能够使用@RolesAllowed批注来声明哪些角色可以访问某些function,但正如所解释的, RoleBasedSecurityFilter类阻止了这一点。 所以我的问题是,有没有人知道如何禁用一个特定的RESTEasyfilter(即RoleBasedSecurityFilter )? 我想它可以在部署描述符(web.xml)中完成(例如使用context-param元素 ),但我不知道如何实际禁用filter。 我意识到我也可以更改我正在使用的RESTEasy库中的RoleBasedSecurityFilter.java文件中的行,但是这种方法对我来说太难了,因为我不希望每次升级时都不得不再次应用这个hack RESTEasy版本。 (不知道那会是多久……)

Joda-Time,夏令时计算,时区独立测试

我们在应用程序中使用固定时间段。 当用户添加新的时段时,默认情况下应该是第二天的上午6:00到上午6:00。 通常情况下,它是24小时,但有一个问题:当执行夏令时更改时,该时间段的长度会发生变化。 例如 : 10月27日上午6:00至10月28日上午6:00。 在此期间执行从CEST到CET时区的转换。 因此,这个时期包含25个小时: From 27 October 6:00 AM to 28 October 3:00 AM – there are 21 hours at 3:00 am the time is shifted back by 1 hour, so there are 4 hours until 28 October 6:00 AM. 我们遇到了这个问题并尝试编写unit testing以防止它再次出现。 测试在我们的计算机上成功通过,但在CI服务器上失败(它在另一个时区)。 问题是:我们怎样才能独立于机器的时区设计我们的unit testing? 目前,小时跨度的计算是使用Joda-Time计算的: if ((aStartDate == null) || […]

从给定长度生成所有可能的字符串

我希望能够从给定的长度生成所有可能的字符串,坦白说,我不知道如何编码。 因此,为了进一步解释,我和一位朋友想展示一些基本的黑客攻击技术,因此会出现强制攻击。 当然,他将是我的受害者,那里没有违法的东西。 然而,他告诉我的唯一一件事是他的PW将是4个字符长,但我很确定他的PW不会出现在任何字典中,这很容易。 所以我提出了生成每个4-char-long-string的想法,包含az字符(无上限)。 是否有人可以跟随代码编写这样的算法? 我真的不打扰表演,如果需要1晚才能生成所有PW,那没问题。 别忘了,这只是出于演示目的。

如何从服务器validation客户端代码是否未被修改

我有一个java服务器通过json-rpc与java客户端通信。 客户端应该向服务器报告内部统计信息,从而修改服务器行为。 客户端和服务器的主要内容都是内部编写的,因此我可以控制客户端的操作以及报告统计信息的方式,但有没有办法可以validation客户端代码是否未被修改? 如果有,它仍将为客户端提供服务,但使用一些默认行为。 客户端将公开发布,因此对于有人反编译并改变行为并不是什么大不了的事。 简单地让客户端发送代码的签名没有好处,因为可以通过将客户端的原始副本与修改后的副本一起保存来轻易欺骗。

如何用Orika映射generics对象?

我正在使用Orika 1.4.5,我想让我的BidirectionalConverter将PaginatedResponse to PaginatedResponse映射PaginatedResponse to PaginatedResponse ,反之亦然。 PaginatedResponse类如下: public class PaginatedResponse { private List items; private List orderBy; private PagingResponse paging; public PaginatedResponse(List items, List orderBy, PagingResponse paging) { this.items = items; this.orderBy = orderBy; this.paging = paging; } // Getters } 所以我希望我的PaginatedResponseCovnerter接受所有的地图调用,其中转换是PaginatedResponse object1 to PaginatedResponse object2 ,我希望object1和object2具有相同的orderBy和paging属性。 所以我尝试这样做: public class PaginatedResponseConverter extends BidirectionalConverter<PaginatedResponse, PaginatedResponse> […]

程序停止:wait()和notify()

我试图实现这一点:创建两个不同的线程,一个打印奇数,一个打印偶数。 一旦一个线程打印一个数字,它就必须等待另一个线程,依此类推,即一个接一个。 为实现这一点,我使用synchronized块以及wait()和notify()。 我正在创建一个类,其对象将用于传递给两个线程中的synchronized块。 这是代码: – >这是用于传递给synchronized块的对象。 package com.vipin.multithread.variousdemos; public class SyncObject { public SyncObject () { } } 奇数线程: package com.vipin.multithread.variousdemos; public class OddThread implements Runnable { private Thread t; int index=0; SyncObject so=null; int odd_nums[] = {1,3,5,7,9}; public OddThread(SyncObject so) { t = new Thread(this,”Odd Thread”); this.so = so; t.start(); } public Thread […]

Crudrepository /从其他表到实体的单个字段作为只读

因为我犯的任何错误,请耐心等待,因为这是我的第一个问题。 我有一个包含两个表的数据库,一个名为PERSON的表 使用以下实体: @Entity class Person { @Id private String guid; private String firstName; private String organisationGuid; … … } 一个表叫做: 组织 使用以下实体: @Entity class Organisation { @Id private String guid; private String name; … … } 如您所见,每个人都属于一个组织。 现在我需要列出我所有的人,以及组织的名称。 我不希望Person-entity上有完整的Organization-entity,而只是名称。 像这样: [{ “guid”: “xxx”, “firstName”: “Name”, “organisationGuid”: “yyy”, “organisationName”: “Name of yyy” }] 我怎样才能以最简单的方式实现这一目标? 我已经尝试过的事情: […]