我在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)。
有没有一种方法可以在 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”类怎么办?
本质上,我想要创建一组属性的能力,我可以将其包含在许多不同的类中,只是为了方便编程。我不希望出现与继承相关的所有问题。
我正在使用这样的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私有化为枚举?
每次观察者遍历时,我都会收到此错误.
@Override
public void notifyObservers(ModelViewInterface model) {
for(Observer<ModelViewInterface> o : this.observers)
o.notify(model);
}
Run Code Online (Sandbox Code Playgroud)
GWT没有线程,因此它不是同步问题.
这似乎发生在我按下按钮之后,有关如何避免此错误的任何想法?
是否可以使用<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和其他权限.
我有一个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似乎做了我想做的事.
如何正确关闭我的应用程序?
我有类似的东西
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) 目前spring-data-rest正在spring-boot我的项目中以HAL格式返回JSON .我正在使用ember.js前端,并希望使用jsonapi(http://jsonapi.org/)规范.
我如何注册一个新的JSON格式化策略,因为我需要自己编写格式化程序,因为它还不存在?
我需要从一个应用程序连接到两个不同的数据库.问题是我的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)