我正在使用JBoss 6.1,我得到了一个带有注释方法的安全EJB @RolesAllowed("Admin").我试图用Arquillian测试这个方法.
我已经@Before在测试中成功完成了EJB日志,但是,它无法调用该方法.从TRACE日志中,我可以看到主体和角色是正确的(在这种情况下,'myuser'和'Admin'),但安全EJB的方法信息是错误的(requiredRoles为空).
TRACE [org.jboss.security.plugins.authorization.JBossAuthorizationContext] Control flag for entry:org.jboss.security.authorization.config.AuthorizationModuleEntry{org.jboss.security.authorization.modules.DelegatingAuthorizationModule:{}REQUIRED}is:[REQUIRED]
TRACE [org.jboss.security.authorization.modules.ejb.EJBPolicyModuleDelegate] method=public au.com.domain.DTOObject au.com.ejb.SecureServiceBean.save(au.com.domain.DTOObject), interface=Local, requiredRoles=Roles()
TRACE [org.jboss.security.authorization.modules.ejb.EJBPolicyModuleDelegate] Exception:Insufficient method permissions, principal=myuser, ejbName=SecureServiceBean, method=save, interface=Local, requiredRoles=Roles(), principalRoles=Roles(Admin,)
Run Code Online (Sandbox Code Playgroud)
我能够在同一个EJB中成功调用一个方法@PermitAll.
我已经查找了关于安全EJB的Arquillian文档,但找不到任何文档.
非常感谢您的帮助.
- 林
目前我有一个Swing应用程序,我不想集成Apache Shiro,以便对某些角色进行身份验证和委派权限.我已经设法从我为测试创建的shiro.ini文件中读取用户,它看起来像这样:
[users]
admin = 123456, Administrator
[role]
Administrator = *:*:*
Run Code Online (Sandbox Code Playgroud)
然而,这仅仅是为了测试,现在我需要从数据库中读取许可证,所以我在数据库中存储了一个包含我需要的信息的表,它看起来像这样:
users (id,password,username)
userRoles (userId, role)
rolePermission (permissionID,permission,roleID)
Run Code Online (Sandbox Code Playgroud)
我一直在尝试理解使用JDBC领域的教程,但是他们使用Web应用程序或特殊框架来管理他们与Apache Derby或BoneCP之类的数据库的连接,他们更加困惑我这些例子.
所以我要问的是,如果我想使用JDBC领域(使用Oracle数据库)以及shiro.ini需要什么类,我需要配置shiro.ini文件.任何例子或解释将不胜感激!
是否可以在JavaFX应用程序运行时更改css?
我正在寻找的效果是点击一个按钮改变皮肤或主题.
FXML如果存在任何差异,则UI位于文件中.
我试过了
Scene.getStylesheets()
.add(getClass().getResource(skinFileName).toExternalForm());
Run Code Online (Sandbox Code Playgroud)
这没有效果.
谢谢
探索的Java 8的新功能,我迷迷糊糊的想创建一个Consumer<X>通过一个链接Consumer<Y>来Function<X,Y>.
这有意义吗?如果是这样,一个好的(通用)解决方案会是什么样子?
我尝试了什么(相当于一个例子的特例):
特定
@FunctionalInterface
public interface PartialFunction<X, Y> {
Y apply(X x) throws Exception;
}
Run Code Online (Sandbox Code Playgroud)
和
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
public class PartialFunctions {
public static <X, Y> Function<X, Optional<Y>> withOptionalResults(final PartialFunction<X, Y> funcThatThrows) {
return z -> {
try {
return Optional.of(funcThatThrows.apply(z));
} catch (final Exception e) {
return Optional.empty();
}
};
}
public static <X, Y> Consumer<X> acceptOnSuccess(final PartialFunction<X, Y> g, final Consumer<Y> c) {
return x …Run Code Online (Sandbox Code Playgroud) 如何在WildFly上完全禁用WELD.我不需要它,因为我使用另一个DI框架.
异常0:javax.enterprise.inject.UnsatisfiedResolutionException:无法使用限定符[@javax.enterprise.inject.Any(),@ javax.enterprise.inject解析'org.springframework.data.mongodb.core.MongoOperations'的bean .默认()].at org.springframework.data.mongodb.repository.cdi.MongoRepositoryExtension.createRepositoryBean(MongoRepositoryExtension.java:104)at the sun.reflect org.springframework.data.mongodb.repository.cdi.MongoRepositoryExtension.afterBeanDiscovery(MongoRepositoryExtension.java:79)at sun.reflect at.MativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method .java:606)在org.jboss.weld上的org.jboss.weld.inject.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266). event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:125)org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)在org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
我试过了
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd
http://jboss.org/schema/weld/beans ">
<weld:scan>
<weld:exclude name="com.google.**"/>
<weld:exclude name="org.springframework.data.mongodb.**"/>
</weld:scan>
Run Code Online (Sandbox Code Playgroud)
但它没有解决我的问题.
所以我和我的老板不同意这里,也找不到任何相关信息.场景:我想获得某个组织的所有用户.URL应该是什么?
mydomain.com/users/by/organisation/{orgId}
要么
mydomain.com/organisation/{orgId}/users
我们的论点:
情况1:呼叫预期返回"用户",因此"资源"(呼叫的第一部分)应该与之相关.
案例2:组织"拥有"/"是用户的父母,因此组织应该是第一位的.
你的想法是什么?
更新:
我不担心之后会发生什么mydomain.com/{resource}.问题主要涉及HTTP操作(GET,POST,PUT,DELETE)是否应与第一个资源相关mydomain.com/users或是否应该反映该关系mydomain.com/organisations/users/.
我正在尝试使用javax.validation.validation-api来验证@QueryParam参数.我按照以下步骤操作:
添加依赖:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>2.12</version>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)泽西资源:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{param1}")
@ValidateOnExecution
public SomeObject get(@PathParam("param1") String param1,
@NotNull @QueryParam("q1") String q1,
@NotNull @QueryParam("q2") String q2) {
try {
//Assuming q1 and q2 are NOT Null here
...
} catch(Exception exception) {
throw new WebApplicationException(exception,
Response.Status.INTERNAL_SERVER_ERROR);
}
return someObject;
}
Run Code Online (Sandbox Code Playgroud)我尝试给出各种URL的组合,如在q1和q2中,两个参数都不存在,q1缺席或q2缺席.每次@NotNull都没有被发现.意味着尝试块代码正在执行,而不管q1和q2是什么null.
还有什么需要做的?
我引用了这个链接 - https://jersey.java.net/documentation/latest/bean-validation.html#d0e11956.
如何在我的环境中检查Auto-Discoverable功能是否已启用?
Eclipse IDE的Mars版本引入了Oomph安装程序来管理Eclipse安装.它有一个高级模式,您可以在其中选择目录为"Bundle Pool",创建"Agents"等.
那么,所有这些背后的概念是什么呢?益处在哪里?
我想从表格数据生成RDF数据,特别是:CSV,TSV,电子表格(Excel或OpenOffice),最后是RDBMS中的表格.
我知道"RDB到RDF映射语言"(R2RML)(http://www.w3.org/TR/r2rml/)目前的草案.
我使用Apache Jena处理,存储和查询RDF数据和/或读取CSV或TSV文件.我使用Apache POI来阅读Microsoft Excel电子表格,我计划使用Apache ODF Toolkit来阅读OpenOffice电子表格.
我可以使用R2RML的Java开源(最好是ASL)实现吗?
使用JEP 101:广义目标类型推断,这
final List<Boolean> bools = Arrays.asList(true,false, true);
final List<Character> string = bools.stream()
.<Character>map(x -> x ? 'X' : 'O')
.collect(Collectors.<Character>toList());
Run Code Online (Sandbox Code Playgroud)
应该可以减少
final List<Boolean> bools = Arrays.asList(true, false, true);
final List<Character> string = bools.stream()
.map(x -> x ? 'X' : 'O')
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
在Java 8中,但后者不编译:
Type mismatch: cannot convert from List<Object> to List<Character>
我弄错了吗?还是我领先于我的工具?
我正在使用JDK 8 build b120和eclipse-SDK-4.3.1-win32-x86_64-efx-0.9.0-SNAPSHOT.zip.