我用CDI做了一个小测试项目.我的应用程序由EJB EAR和WAR组成,全部部署在Glassfish 4上.我正在使用Hibernate 4.3.4来访问数据库.
我的目标是验证EJB(DAO)中的类是否可以接收EntityManager的注入.
SessionBean + EJB模式并不是很棒,但我必须修改已经创建的应用程序,所以我没有太多选择.
这是我的EJB代码:
@Named
public class DAOTest implements Serializable {
private static final long serialVersionUID = 1L;
@PersistenceContext(unitName="CDI-ejb")
private EntityManager em;
public void test(){
//em.getClass();
}
public EntityManager getEm() {
return em;
}
public void setEm(EntityManager em) {
this.em = em;
}
public DAOTest() {
// TODO Auto-generated constructor stub
}
}
Run Code Online (Sandbox Code Playgroud)
Service.java
@Stateless
@LocalBean
public class Service implements ServiceLocal {
@Inject DAOTest test;
/**
* Default constructor.
*/
public Service() {
// TODO …Run Code Online (Sandbox Code Playgroud) 我尝试将 Keycloak 与 Spring Boot 一起使用,但我遇到了问题。身份验证适用于适配器,但不适用于授权。
这是我的配置:
keycloak.realm = master
keycloak.auth-server-url = http://127.0.0.1:8080/auth
keycloak.ssl-required = none
keycloak.resource = pactng
keycloak.credentials.secret = **************************
keycloak.use-resource-role-mappings = true
keycloak.principal-attribute=preferred_username
keycloak.bearer-only = true
keycloak.policy-enforcer-config.userManagedAccess=org.keycloak.representations.adapters.config.PolicyEnforcerConfig.UmaProtocolConfig
keycloak.policy-enforcer-config.lazyLoadPaths=true
keycloak.policy-enforcer-config.paths[0].path=/*
keycloak.policy-enforcer-config.paths[0].methods[0].method=GET
keycloak.policy-enforcer-config.paths[0].methods[0].scopes[0]=urn:pactng:scopes:read
keycloak.policy-enforcer-config.paths[0].methods[1].method=POST
keycloak.policy-enforcer-config.paths[0].methods[1].scopes[0]=urn:pactng:scopes:create
keycloak.policy-enforcer-config.paths[0].methods[2].method=PUT
keycloak.policy-enforcer-config.paths[0].methods[2].scopes[0]=urn:pactng:scopes:update
keycloak.policy-enforcer-config.paths[0].methods[3].method=PATCH
keycloak.policy-enforcer-config.paths[0].methods[3].scopes[0]=urn:pactng:scopes:update
keycloak.policy-enforcer-config.paths[0].methods[4].method=DELETE
keycloak.policy-enforcer-config.paths[0].methods[4].scopes[0]=urn:pactng:scopes:delete
Run Code Online (Sandbox Code Playgroud)
我没有在这里定义角色,我希望适配器根据访问令牌中包含的请求和权限动态计算授权。
这是我的 Spring Security 的 KeycloakConfig:
@KeycloakConfiguration
public class KeycloakConfig extends KeycloakWebSecurityConfigurerAdapter {
/**
* Map keycloak role to spring ROLE_<ROLE>
* @param auth
*/
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) {
KeycloakAuthenticationProvider keycloakAuthenticationProvider = keycloakAuthenticationProvider();
keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper());
auth.authenticationProvider(keycloakAuthenticationProvider); …Run Code Online (Sandbox Code Playgroud) 我有一个用于照片编辑的画布.我想以全高清保存照片.在小屏幕上观看时,画布尺寸远低于此分辨率.所以我在画布上应用缩放以查看整个画面.
如何在编辑后保存在Full HD中画布中可见的图像?
示例:在画布尺寸SVGA(800x600)中编辑图像尺寸QHD(2560x1440)并生成图像全高清(1920x1080)
canvas ×1
cdi ×1
glassfish-4 ×1
html5 ×1
java-ee ×1
javascript ×1
keycloak ×1
scale ×1
spring-boot ×1
weld ×1