我想使用Spring Security保护我的服务层.正如文档中所解释的,我需要使用一个MethodSecurityInterceptor来检查是否允许方法调用.
要确定是否允许给定用户进行服务方法调用,影响调用方法(使用MethodSecurityMetadataSource)所需的角色对我来说是不够的,因为它还取决于传递给方法的参数.正如文档中所建议的,我可以编写自定义AccessDecisionVoter并通过安全对象访问参数(MethodInvocation在本例中).
但是,我的授权逻辑在方法上是不同的.例如,多个方法之间的参数可能不同,授权逻辑也不同.
我看到两个选择:
AccessDecisionVoter来确定要使用的调用方法和授权逻辑,但它似乎是一个丑陋的解决方案.MethodSecurityInterceptor每个方法定义一个安全.根据Spring文档,a MethodSecurityInterceptor用于保护许多方法,因此它让我觉得还有另一种方法.方法调用(使用AfterInvocationProvider)后的访问决策存在同样的问题.
有哪些替代方案?
我基本上想要去:
ScriptObjectMirror myObj = new ConcreteScriptObjectMirror();
Run Code Online (Sandbox Code Playgroud)
然后像这样调用一些JS,myObj参数在哪里:
function myJSFunc(param) {
with(param) {
return paramProperty;
}
}
Run Code Online (Sandbox Code Playgroud)
我现在正在这样做,但Nashorn正在抱怨:
TypeError:无法对非脚本对象应用"with"
因此,我传入的Java对象需要是ScriptObjectMirror的一个实例.
有人可以举例说明如何gitRepo在Kubernetes中使用音量类型吗?
该医生说它是一个插件,不知道这意味着什么.无法在任何地方找到示例,我不知道正确的语法.
特别是有拉动特定分支的参数,使用凭证(用户名,密码或SSH密钥)等...
编辑:通过Kubernetes代码这是我到目前为止的想法:
- name: data
gitRepo:
repository: "git repo url"
revision: "hash of the commit to use"
Run Code Online (Sandbox Code Playgroud)
但是不能看到它使它工作,并不知道如何解决这个问题
我想访问ng-content的内容,首先来获取内容元素的数量,但稍后会有更多的精彩内容.
例如:
@Component({
selector: 'my-container',
template: `
<div class="my-container">
<div class="my-container-nav"><a class="my-container-previous"></a></div>
<div class="my-container-body">
<div class="my-container-items">
<ng-content></ng-content>
</div>
</div>
<div class="my-container-nav"><a class="my-container-next"></a></div>
</div>
`
})
export class MyContainer implements AfterContentInit {
@ContentChildren(???) containerItems : QueryList<???>;
ngAfterContentInit() {
console.log('after content init: ' + this.containerItems.length);
}
}
Run Code Online (Sandbox Code Playgroud)
我将什么作为内容儿童的类型?
它们可以是任何东西.我尝试过ElementRef,但这不起作用,总是给出一个零的数.
使用示例:
<my-container>
<div>some content here</div>
<another-component [title]="'another component there'"></another-component>
<div>there's lots of content everywhere</div>
<span>no assumptions would be fair</span>
</my-container>
Run Code Online (Sandbox Code Playgroud)
我希望看到"在内容init:4之后".
我正在 Tomcat 8.0.24 上将 Web 服务部署为 Web 应用程序 (war)。应用程序 jar 已经过测试,并且运行良好。现在,出于配置和测试 log4j 的目的,我引发了运行时错误(没有连接数据库)。
我正在尝试将 log4j2 设置为仅用于应用程序日志记录(不适用于 tomcat),并且我正在使用 Netbeans 8.0.2 来构建 war。
我已在类路径中包含以下 jar:
log4j-api-2.8.jar
log4j-core-2.8.jar
log4j-web-2.8.jar
log4j-jcl-2.8.jar
commons-logging.jar
Run Code Online (Sandbox Code Playgroud)
WEB-INF 中的 log4j2.xml,仅配置根记录器来捕获来自 Web 应用程序的所有内容:
log4j-api-2.8.jar
log4j-core-2.8.jar
log4j-web-2.8.jar
log4j-jcl-2.8.jar
commons-logging.jar
Run Code Online (Sandbox Code Playgroud)
我还配置了 catalina.properties,以防万一,覆盖默认的 jarsToSkip:
tomcat.util.scan.StandardJarScanFilter.jarsToScan=log4j-core*.jar,log4j-taglib*.jar,log4j-api*.jar,log4j-web*.jar,log4j-jcl*.jar`
Run Code Online (Sandbox Code Playgroud)
我相信 log4j 已正确初始化为 catalina*.log 状态,因为 status="TRACE":
2017-02-08 14:06:52,355 http-nio-8080-exec-8 DEBUG Log4jServletContextListener ensuring that Log4j starts up properly.
2017-02-08 14:06:52,357 http-nio-8080-exec-8 DEBUG Log4jServletFilter initialized.
Run Code Online (Sandbox Code Playgroud)
还因为创建了日志文件。
但是,来自应用程序(Web 服务 jar)的所有运行时错误消息都以 catalina*.log 结尾,而不是我配置的文件附加程序。此外,catalina*.log 中的那些错误消息不遵循 Appenders 定义中定义的任何模式,因此基本上看起来 log4j2 被忽略了。
我究竟做错了什么?
我正在使用一个相当大的Angular应用程序,当前在共享模块中拥有所有共享组件和模块,只要需要导出任何内容,我都会导入该模块。
但是,我有一些小的功能模块,它们仅需要共享模块中的很少的模块,然后我是否应该增加体系结构的复杂性和模块化,以便仅导入所需的模块,即使它们已导入其他位置?
Angular 文档指出已缓存已导入到另一个模块中的导入模块,这不是问题,但这意味着,应用程序变慢/变大了吗?
示例:模块1导入A,B,C。模块2导入A,C,D。
如果我在两个模块中都导入了A,B,C,D(例如通过共享模块),会不会导致性能损失?
我正处于设计基于Azure的应用程序的早期阶段.考虑到我可能期望的需求变化,吸引我进入Azure的一个原因是可扩展性.因此,我试图保持松散耦合,以便我可以在需要时添加实例.
我在构建Azure应用程序时看到的建议包括将Web角色逻辑保持在最低限度,并在工作者角色中完成处理,使用队列进行通信以及某些后端存储(如SQL Azure或Azure表).这对我来说似乎是一个好主意,因为我可以毫无问题地扩展应用程序的任一部分或两部分.但是我很好奇是否有任何最佳实践(或者如果有人有任何经验),最好让网络角色直接与数据存储对话而不是通过队列发送数据?
我正在考虑从web角色进行简单插入的情况 - 我可以将其设置为消息,将其发送到队列中,并让工作者角色拾取并执行插入,它似乎很多双重处理.但是我也很欣赏,从长远来看,这可能是更好的情况,万一web角色不堪重负或者插件需要更复杂的逻辑.
我意识到这可能是一个案例,答案是"它完全取决于情况,检查你的绩效指标" - 但如果有人有任何想法,我会非常感激!
我正在尝试使用log4j附加程序将日志发送到GrayLog2(log4j2-gelf)。因此,我将我的依赖项添加到pom.xmlconfigure中log4j2.xml以配置我的附加程序。用maven编译整个程序并将其部署到本地tomcat,一切正常。当我尝试关闭tomcat时,会发生问题。如果我不使用Tomcat,Tomcat不会停止运行kill -9 PID,catalina.out最终结果是:完整的堆栈跟踪
引起我注意的是
java.lang.NoClassDefFoundError:io / netty / util / concurrent / DefaultPromise $ 1
首先,我认为我可能还有另一个依赖项导入netty,这将导致此异常。但是我已经找了一段时间,却找不到其他进口商品。然后我看到了:
原因:java.lang.ClassNotFoundException:非法访问:此Web应用程序实例已被停止。无法加载[io.netty.buffer.PoolArena $ 1]。出于调试目的以及试图终止导致非法访问的线程,将抛出以下堆栈跟踪。
这就是我要问的问题。我的理解是,gelf-appender使用Netty作为与GrayLog服务器异步通信的一种方式。但这是服务器本身。那么Tomcat是否有可能在杀死底层Netty之前停止了父Servlet?哪个会导致这个问题?我正在尝试查找有关Tomcat关闭的方法的文档,但是到目前为止,我什么也没找到,而且我在诊断方面完全错了……
我的公司目前正在构建一个用 Angular 2 编写的非常大的 SPA,我们在内存消耗方面存在一些问题。
在我的测试过程中,我已经注释掉了应用程序中的所有代码,只留下主模块和两个完全空的组件。我们使用 Webpack 进行转译。
在 Chrome 中分析时,内存消耗似乎相当一致,但是当我在 IE11 中执行相同操作时(客户端将主要使用此浏览器),即使刷新浏览器窗口,内存似乎也在不断增加。
以下是 IE 分析器和任务管理器的两个屏幕截图。每个尖峰表示浏览器刷新。另请注意,拍摄堆快照显示我的网站的恒定值为 3.16Mb,因此没有任何问题。
这个问题在完整版中变得更糟,经过几个小时的工作,浏览器可以达到 1Gb 以上。
任务管理器:
IE11 中不断增加的内存是否是一个已知问题?如果您想了解有关我的实施的更多信息,请询问。
我只是想在Angular2中运行一个简单的index.html页面,但它在console中的zone.js中显示错误:
Unhandled Promise rejection: No ErrorHandler. Is platform module (BrowserModule) included? ; Zone: <root> ; Task: Promise.then ; Value: Error: No ErrorHandler. Is platform module (BrowserModule) included?
at eval (application_ref.ts:364)
at ZoneDelegate.invoke (zone.js:391)
at Object.onInvoke (ng_zone.ts:296)
at ZoneDelegate.invoke (zone.js:390)
at Zone.run (zone.js:141)
at NgZone.run (ng_zone.ts:153)
at PlatformRef_._bootstrapModuleFactoryWithZone (application_ref.ts:359)
at eval (application_ref.ts:330)
at ZoneDelegate.invoke (zone.js:391)
at Zone.run (zone.js:141) Error: No ErrorHandler. Is platform module (BrowserModule) included?
at eval (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:4531:23)
at ZoneDelegate.invoke (http://localhost:3000/node_modules/zone.js/dist/zone.js:391:26)
at Object.onInvoke (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:3922:33)
at ZoneDelegate.invoke (http://localhost:3000/node_modules/zone.js/dist/zone.js:390:32)
at …Run Code Online (Sandbox Code Playgroud) angular ×4
java ×3
log4j2 ×2
angular-cli ×1
azure ×1
azure-queues ×1
docker ×1
es6-modules ×1
graylog2 ×1
javascript ×1
kubernetes ×1
memory ×1
memory-leaks ×1
nashorn ×1
ng-modules ×1
queue ×1
tomcat ×1
tomcat8 ×1