小编jax*_*jax的帖子

在OAuth2AuthenticationProcessingFilter之前添加过滤器

我在IDP模式和spring-boot中使用spring-security-oauth2。在从请求中提取oauth令牌之前,我需要做一些工作。如何在之前添加过滤器OAuth2AuthenticationProcessingFilter?

我试过了:

@Configuration
@EnableResourceServer
public class OAuth2ResourceServerConfigurerAdapter extends ResourceServerConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().anyRequest().authenticated().and()
                .addFilterBefore(new MyFilter(), OAuth2AuthenticationProcessingFilter.class);
    }

}
Run Code Online (Sandbox Code Playgroud)

但是我得到以下异常:

java.lang.IllegalArgumentException:在未注册的过滤器类org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter后无法注册

我猜这可能是因为@EnableResourceServer在之后执行了configure(HttpSecurity http)。

spring-security spring-security-oauth2

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

定义公共属性而不继承

有没有一种方法可以在 Kotlin 中不使用继承来定义公共属性?

例如

如果我有两个类都需要“id”属性。

class Dog() {
  var id: UUID?
}

class Cat() {
  var id: UUID?
}
Run Code Online (Sandbox Code Playgroud)

解决这个问题的一般JAVA方法是引入一个超类

class Animal() {
  var id: UUID?
}
class Dog: Animal()
class Cat: Animal()
Run Code Online (Sandbox Code Playgroud)

但现在“Dog”和“Cat”的类型是“Animal”。如果我引入一个也需要唯一标识符的“Chair”类怎么办?

本质上,我想要创建一组属性的能力,我可以将其包含在许多不同的类中,只是为了方便编程。我不希望出现与继承相关的所有问题。

kotlin

7
推荐指数
2
解决办法
682
查看次数

将枚举INSTANCE设为私有

我正在使用这样的enum singletom模式:

public enum LicenseLoader implements ClientLicense {
    INSTANCE;

    /**
     * @return an instance of ClientLicense
     */
    public static ClientLicense getInstance() {
        return (ClientLicense)INSTANCE;
    }

   ...rest of code

}
Run Code Online (Sandbox Code Playgroud)

现在我想返回接口并隐藏我们实际上正在使用枚举的事实.我希望客户端使用getInstance()而不是LicenseLoader.INSTANCE,因为有一天我可能会决定使用不同的模式.

是否可以将INSTANCE私有化为枚举?

java singleton enums private

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

GWT应用程序从MVC模式获取java.util.ConcurrentModificationException

每次观察者遍历时,我都会收到此错误.

@Override
public void notifyObservers(ModelViewInterface model) {
    for(Observer<ModelViewInterface> o : this.observers)
        o.notify(model);
}
Run Code Online (Sandbox Code Playgroud)

GWT没有线程,因此它不是同步问题.

这似乎发生在我按下按钮之后,有关如何避免此错误的任何想法?

gwt

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

创建自己的权限

是否可以使用<uses-permission>标记创建自己的权限 ?

像这样

<uses-permission android:name="com.android.myapp.INSTALL_LICENSE"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

com.android.myapp我的包的名称在哪里,是INSTALL_LICENSE用户必须接受的权限

此外,我想将大量现有权限发布到这一权限中,因此客户端只需要声明一个权限,他们就可以获得INTERNET,PHONE_STATE和其他权限.

android

6
推荐指数
3
解决办法
7642
查看次数

当JDialog是主窗口时正确关闭java程序

我有一个JDialog作为我的应用程序中的主窗口(最初它是一个JFrame,但它在任务栏中显示我不想要).

目前我在做:

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

当我点击退出按钮时:

frame.dispose();
Run Code Online (Sandbox Code Playgroud)

但这个过程似乎仍然在后台徘徊

JFrame JFrame.EXIT_ON_CLOSE似乎做了我想做的事.

如何正确关闭我的应用程序?

java swing windowlistener

6
推荐指数
2
解决办法
1万
查看次数

如何使用webstorm和requirejs完成AMD代码?

我有类似的东西

define(function(require) {

    var Router = require('./router');
    var Backbone = require('backbone');
    var Log = require('log');

...
Run Code Online (Sandbox Code Playgroud)

显然,Webstorm意味着支持AMD模块,但我不能让它工作,而是从项目中的每个.js文件中获取大量属性.

有没有人有幸使用requirejs模块完成Webstorm代码完成/重构?

更新,如果我遵循以下构造,我能够使它工作

define(['backbone', './router', './log'], function(Backbone, Router, Log) {
Run Code Online (Sandbox Code Playgroud)

但是,所有路径都必须是相对的.对于在require.config中配置的路径,这是不切实际的,因此Backbone没有代码完成.

requirejs.config({
    baseUrl: 'js',

    paths: {
        'backbone' : '../bower_components/backbone/backbone-min',
...
Run Code Online (Sandbox Code Playgroud)

另外,当有很多依赖关系时,上面的语法变得丑陋......

更新2 如果您更改目录,上述操作无效,例如,下面的日志无法获得代码完成:

define(['backbone', './router', '../utils/log'], function(Backbone, Router, Log) {
Run Code Online (Sandbox Code Playgroud)

requirejs webstorm

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

传递参数以保存()

是否可以传递这样的参数?我需要传递一些不属于模型本身的信息.

myModel.save({site : 23})
Run Code Online (Sandbox Code Playgroud)

ember-data

6
推荐指数
2
解决办法
4672
查看次数

更改spring-data-rest的JSON格式

目前spring-data-rest正在spring-boot我的项目中以HAL格式返回JSON .我正在使用ember.js前端,并希望使用jsonapi(http://jsonapi.org/)规范.

我如何注册一个新的JSON格式化策略,因为我需要自己编写格式化程序,因为它还不存在?

spring-data-rest spring-hateoas

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

Spring Boot中的多个事务管理器,用于不同的EntityManagers

我需要从一个应用程序连接到两个不同的数据库.问题是我的appEntityManager没有与之关联的事务管理器,我不知道该怎么做.该@Primary adminEntityManager能够描述使用弹簧启动提供一个没有任何麻烦这里.

上面的配置几乎可以单独使用.要完成图片,您还需要为两个EntityManagers配置TransactionManagers.如果你把它标记为@Primary,其中一个可以被Spring Boot中的默认JpaTransactionManager选中.另一个必须明确地注入新实例.或者您可以使用跨越两者的JTA事务管理器.

我已经注释了配置

@EnableTransactionManagement
Run Code Online (Sandbox Code Playgroud)

这是相关的豆子

@Bean
@ConfigurationProperties(prefix = "datasource.app")
public DataSource appDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
@Primary
@ConfigurationProperties(prefix = "datasource.admin")
public DataSource adminDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
public LocalContainerEntityManagerFactoryBean appEntityManagerFactory(
        final EntityManagerFactoryBuilder builder) {
    return builder
            .dataSource(appDataSource())
            .packages("au.com.mycompany.app.bomcommon.domain")
            .persistenceUnit("appPersistentUnit")
            .build();
}

@Bean
@Primary
public LocalContainerEntityManagerFactoryBean adminEntityManagerFactory(
        final EntityManagerFactoryBuilder builder) {
    return builder
            .dataSource(adminDataSource())
            .packages("au.com.mycompany.app.bombatch")
            .persistenceUnit("adminPersistentUnit")
            .build();
}

//I thought this would do it but I am getting an exception
//No qualifying bean of type …
Run Code Online (Sandbox Code Playgroud)

spring spring-boot

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