我们正在尝试将Keycloak评估为SSO解决方案,并且它在许多方面看起来都很好,但是文档在基础知识方面却很缺乏.
对于一个给定Keycloak安装http://localhost:8080/的境界test,有什么的OAuth2授权端点,OAuth2用户令牌端点和ID连接的UserInfo终点?
我们对使用Keycloak自己的客户端库不感兴趣,我们希望使用标准的OAuth2/OpenID Connect客户端库,因为使用keycloak服务器的客户端应用程序将使用多种语言编写(PHP,Ruby,Node,Java,C# ,Angular).因此,使用Keycloak客户端的示例对我们来说并不适用.
目前是否可以跨模块扫描/查询/迭代所有具有某些属性的函数(或类)?
例如:
source/packageA/something.d:
@sillyWalk(10)
void doSomething()
{
}
Run Code Online (Sandbox Code Playgroud)
source/packageB/anotherThing.d:
@sillyWalk(50)
void anotherThing()
{
}
Run Code Online (Sandbox Code Playgroud)
source/main.d:
void main()
{
for (func; /* All @sillWalk ... */) {
...
}
}
Run Code Online (Sandbox Code Playgroud) 我知道这已被问了一百万次我做了我的功课,但最后我还不完全理解的是,是否有"Java EE JDK"?
当我下载SDK时,它会尝试安装我不想要的大量垃圾.所以我做了一些阅读并意识到实际上Java SDK是一组技术上与JDK无关的工具.所以我正在寻找的只是简单的JDK单独下载.
我们知道Sun的(现在的Oracle)网站一直提供 "Java SE JDK" .但是,我正在开发一个Web应用程序,并对一些 Java EE特性感兴趣:javax.servlet,javax.validation,javax.persistence和javax.transaction.所以我真正想要的是"Java EE JDK".
我正在使用典型的Maven/Tomcat/Spring/Hibernate设置,在过去,我总是在Maven提供的范围中为我的项目添加仅API依赖项,用于Java EE规范的这些部分,即:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
因此,如果我为我的项目所需的所有Java EE API执行此操作,那么我实际上将Java SE JDK与一些其他手动声明的Java EE组件一起使用.此外,当我指示我的IDE使用Java EE SDK安装附带的JDK时,这些额外的命名空间不可用.
换句话说,对于所有意图和目的,似乎Java EE SDK下载附带的JDK等同于我在安装"Java SE JDK"时获得的JDK ...如果这是正确的那么有我不需要安装Java EE SDK,我可以简单地使用Java(SE)JDK声明我需要的任何Java EE组件作为*-api /提供的依赖关系,如上所述.
所以我的问题是:我在上面描述了正确的方法,还是有"Java EE JDK"这样的东西?即一个JDK,它带有未实现的接口,如javax.servlet和javax.resources等等?如果这样的野兽存在,我会从哪里下载?
刚刚安装了VS 2013(之前在2010年),我深感遗憾.我很高兴公司拿起标签!
我已经阅读了一下,发现很多人讨厌VS 2012/2013的外观和感觉,并且有一些工具和技巧可以在VS 2012中恢复2010年的外观和感觉.但是我找不到类似的东西.对于2013年,我想知道我是否错过了它,或者它还没有发明.
编辑:我发现了其他人可能感兴趣的两件事:
编辑#2:最后我没有使用提供的答案中的主题.似乎"接近2010"主题在2013年以"蓝色"名称内置.我决定不再使用图标和颜色,尝试习惯这些图标.上面的hacks,加上VSCommands对我来说已经足够了.
如何在Kotlin中按名称动态获取函数?
即:
fun myFunc11() { println("Very useful function 11") }
val funcName = "myFunc" + 11
val funcRef = getFunction(funcName)
funcRef()
Run Code Online (Sandbox Code Playgroud)
编辑:接受的答案似乎是正确的,但是代码目前在Kotlin中遇到了一些错误.提交的错误报告:https://youtrack.jetbrains.com/issue/KT-10690
我知道我可以使用maven插件mavenLocal()来安装工件并在本地使用它.
然而,进一步研究这一点,我注意到这意味着工件安装到Mavens的标准~/.m2,但同时Gradle自己的缓存~/.gradle/caches以不同的格式存在.
这对我来说似乎很浪费,a)使用两个本地缓存,以及b)必须添加mavenLocal()到所有项目中.我想知道是否有办法向Gradle发布工件~/.gradle/caches?
我想用StringFormatMethod属性标记我的一个方法,因此Resharper语法突出显示它.
我能够通过引用JerBrains.Annotations程序集并添加属性来完成此操作.
但是我发现这是一种非常有创意的方法.这里并不是每个人都使用JetBrains,它需要将.dll提交给subversion,添加依赖项,并使用特定于特定IDE的内容乱丢代码,我讨厌.
我读到了"外部注释"功能,但我无法做到.我不确定我是否做错了,或者解决方案中的项目是否完全不受支持(即不是编译的程序集引用).
那么有没有办法以非侵入方式向项目中的方法添加代码注释?
PS这是方法:
使用系统;
namespace MyLib
{
public static class Assert
{
public static void That(bool condition, string format, params object[] @params)
{
if (!condition)
throw new Exception(string.Format(format, @params));
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是内容
C:\ Program Files(x86)\ JetBrains\ReSharper\v7.1\Bin\ExternalAnnotations\MyLib.xml:
<assembley name="MyLib">
<member name="MyLib.Assert.That(System.Boolean,System.String,System.Object[])">
<attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor">
<argument>format</argument>
</attribute>
</member>
</assembley>
Run Code Online (Sandbox Code Playgroud) 可能是一个愚蠢的问题,但是 - Mono网站上的HeapShot页面说:
如果Heap Shot没有适用于您的操作系统的安装程序或软件包,...
对我来说意味着在interweb上存在一个页面,其中包含各种平台的下载链接,其中可能列出或不列出Windows 7.
然而,对于我的生活 - 我无法弄清楚那个页面的生活方式.
我现在宁愿不去构建它,我尝试过,我错过了大量的库,可能是我安装单声道时未经检查的东西.
在我(重新)安装GTK#和其他恶作剧并构建该死的东西之前,有人可以解释一下:是否可以简单地下载Mono的HeapShot GUI的Windows版本?
这段伪代码工作得很好:
RANGE.reduce!((a,b) => a + b);
Run Code Online (Sandbox Code Playgroud)
实际上它出现在多个示例和文档中.
但是,这不起作用,我无法弄清楚原因:
RANGE.reduce!((a,b) => { return a + b; });
Run Code Online (Sandbox Code Playgroud)
我一直收到以下错误:
algorithm.d(52,52): Error: cannot implicitly convert expression
(__lambda1(result, _param_1.front()))
of type int delegate() nothrow @nogc @safe
to int
Run Code Online (Sandbox Code Playgroud)
我认为它可能是D中的一个错误,但也许我错过了一些东西......?
(我的实际委托更复杂,我只是将代码简化为演示问题的最小示例).
我正在尝试使用增强路径执行几乎任何操作,从而获得一致的段错误.
(编辑:似乎所有segfaulting函数都与之相关current_path())
Sample program:
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/path.hpp>
#include <iostream>
using namespace std;
using namespace boost::filesystem;
using namespace boost::system;
int main(int argc, const char * argv[])
{
error_code err;
auto p = path("hello/../world");
cout << p.string() << endl;
path c = canonical(p, err);
cout << c.string() << endl;
}
Run Code Online (Sandbox Code Playgroud)
以上只是一个例子,以下也是段错:
auto p = current_path(err);
和:
auto p = initial_path(err);
编译:
g++-4.9 -lboost_filesystem -lboost_system -std=c++11 main.cpp -o ./path-test
输出:
hello/../world
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)
通过Homebrew安装GCC和Boost . …