我有一个Keycloak受保护的后端,我想通过swagger-ui访问.Keycloak本身提供了oauth2隐式和accessCode流程,但我都没有工作.目前Keycloak的文档缺乏这一点,哪些url应该用于swagger.json中的authorizationUrl和tokenUrl.
Keycloak中的每个领域都通过访问http://keycloak.local/auth/realms/REALM/.well-known/openid-configuration提供了大量的配置URL列表.
此外,我试图通过添加以下行直接在swagger-ui index.html中集成keycloak js-client:
<script src="keycloak/keycloak.js"></script>
<script>
var keycloak = Keycloak('keycloak.json');
keycloak.init({ onLoad: 'login-required' })
.success(function (authenticated) {
console.log('Login Successful');
window.authorizations.add("oauth2", new ApiKeyAuthorization("Authorization", "Bearer " + keycloak.token, "header"));
}).error(function () {
console.error('Login Failed');
window.location.reload();
}
);
</script>
Run Code Online (Sandbox Code Playgroud)
"登录成功"后我也尝试了类似的东西
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "Bearer " + keycloak.token, "header"));
Run Code Online (Sandbox Code Playgroud)
但它也行不通.
有什么建议我如何能够在swagger中集成keycloak auth?
我正在尝试为我正在使用的 UI 应用程序实现身份验证https://github.com/joaojosefilho/vuejsOidcClient我已成功配置为与 gluu auth 服务器一起使用
现在我想尝试使用 keycloak 发生的情况是流程开始,看起来不错
http://auth.solidsense.tk/auth/realms/master/protocol/openid-connect/auth?client_id=console&redirect_uri=http%3A%2F%2Fportal.solidsense.tk%2Fcallback.html&response_type=id_token%20token&scope=openid%20profile%20permission%20address%20roles&state=f60457ff91c84ac5b49179bc4b47cd8d&nonce=3753dd32c3ea4f8087608382c2eef932
并且显示了 keycloak 登录页面,但在提交时输入凭据后,我收到以下请求的错误 502 (如果输入了不正确的凭据,则会显示正确的错误消息)
http://auth.solidsense.tk/auth/realms/master/login-actions/authenticate?session_code=2xol67J32yIFVfDfrN0DmIT1sdzfzoeo1dg_kPZrYeY&execution=499b2298-5c08-4521-8993-b23eb253f0a4&client_id=console&tab_id=cHj4HozAr-Q
这是我在日志中看到的异常
08:03:26,164 DEBUG [io.undertow.request.io] (default task-1) UT005013: An IOException occurred: java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:197)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at org.xnio.nio.NioSocketConduit.read(NioSocketConduit.java:289)
at org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127)
at io.undertow.util.ConnectionUtils.doDrain(ConnectionUtils.java:96)
at io.undertow.util.ConnectionUtils.cleanClose(ConnectionUtils.java:74)
at io.undertow.server.protocol.http.HttpReadListener.exchangeComplete(HttpReadListener.java:368)
at io.undertow.server.protocol.http.HttpServerConnection.exchangeComplete(HttpServerConnection.java:232)
at io.undertow.server.HttpServerExchange.invokeExchangeCompleteListeners(HttpServerExchange.java:1279)
at io.undertow.server.HttpServerExchange.terminateResponse(HttpServerExchange.java:1563)
at io.undertow.server.Connectors.terminateResponse(Connectors.java:147)
at io.undertow.server.protocol.http.ServerFixedLengthStreamSinkConduit.channelFinished(ServerFixedLengthStreamSinkConduit.java:58)
at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.exitFlush(AbstractFixedLengthStreamSinkConduit.java:316)
at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(AbstractFixedLengthStreamSinkConduit.java:234)
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:618)
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:486)
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:575) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将eclipse kepler用于Java EE 7.我已经安装了JBoss Tools并成功添加了JBoss Wildfly作为服务器.但是,我的更改不会自动部署.无论如何,应用程序可以像使用glassfish一样自动部署吗?
在Eclipse中使用JBoss Tools部署应用程序时出现以下错误:
将C:\ wildfly-8.1.0.Final\standalone\tmp\tmp7858611943756287857.xhtml重命名为C:\ wildfly-8.1.0.Final\standalone\deployments\.war\403.xhtml时出错.
这可能是由于服务器的临时部署目录位于与最终目标不同的文件系统上.
您可以在服务器编辑器中调整这些设置.
这是错误的屏幕截图:
在文档上,我发现了这个:
您可以自定义部署位置和打包类型:
- 要选择服务器的工作区部署文件夹,请单击" 使用工作区元数据".
- 要选择应用程序服务器的部署文件夹,请单击" 使用JBoss部署文件夹".
- 要选择所选的文件夹,请单击" 使用自定义部署文件夹".使用此选项,完成" 部署目录"和" 临时部署目录"字段.临时文件夹必须与最终部署位置位于同一文件系统上,否则通常会失败.
- 对于要归档以进行部署的所有模块,请选中"将项目部署为压缩归档"复选框.这可以避免爆炸部署并减少占用的内存量,但可能会导致部署速度变慢.
什么是临时文件夹必须在同一个文件系统上的最终部署地点是什么意思?我该如何解决?
我已经意识到,选中"将项目部署为压缩存档"复选框时,不会发生错误.
最近我升级了以下内容:
现在,当我尝试在Eclipse中部署我的应用程序时,它不再起作用(有时它可以工作,但大多数时候它不起作用).在升级之前一切正常,但是现在我在部署应用程序时得到了这个堆栈跟踪(在这里你看到"Acesso negado",意思是"访问被拒绝"):
13:18:12,452 SEVERE [javax.faces] (MSC service thread 1-7) Unable to obtain InjectionProvider from init time FacesContext. Does this container implement the Mojarra Injection SPI?
13:18:12,452 SEVERE [javax.faces] (MSC service thread 1-7) Unable to call @PreDestroy annotated methods because no InjectionProvider can be found. Does this container …
Run Code Online (Sandbox Code Playgroud) 我正在使用Eclipse Facets进行JPA 2.0和Hibernate 4.2实现.我想我记得在之前的项目中我不必在persistence.xml中注册实体Bean.我错了吗?
使用@Entity注释POJO(在本例中为Pub.java)将在Eclipse标记/问题视图中引发以下错误:
Class "com.jacky.webapp.model.Pub" is managed, but is not listed in the persistence.xml file Pub.java /webapp/src/main/java/com/jacky/webapp/model
Run Code Online (Sandbox Code Playgroud)
任何线索?谢谢.
我在eclipse中使用JSF Project制作文件faces-config.xml会出错
Referenced file contains errors (jar:file:/D:/eclips/eclipse k/plugins/org.jboss.tools.jst.web_3.5.0.Final-v20130717-0309-B75.jar!/catalog/web-facesconfig_2_2.xsd).
Run Code Online (Sandbox Code Playgroud)
faces-config.xml中
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
</faces-config>
Run Code Online (Sandbox Code Playgroud)
当我删除以下行时,faces-config.xml中的错误指示消失
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd
Run Code Online (Sandbox Code Playgroud)
更新我如何解决此问题?
我有一个数据库,我用hibernate工具生成了所有bean和hbm.xml文件.
我注意到这个工具没有自动生成级联属性...我读过它可以使用reveng.xml完成.
有一种方法可以自动生成revenge.xml,或者为所有表设置一次级联属性1次?
在我的Model项目中(它只有持久类,也就是java bean)我有一个具有复合主键的类.为了映射这个,我在班上使用了两个@Id.在休眠4之前它是不可能的,但现在它是好的.所以,问题是,eclipse在这个类中显示错误,说它应该以旧方式完成.像这样:
正如我所说,这是一个错误的错误,因为如果我执行它,代码工作正常.我在eclipse上安装了JBoss Tools插件,但我不知道错误是由它还是由eclipse引起的.
有谁知道如何解决这个问题?并不是说它阻止我执行应用程序,但总是显示错误是一件烦人的事情.
---编辑---
所以,现在我知道问题出在JBoss Tools上,因为我停用了项目上的JPA方面并且错误已经停止.但我希望我可以使用JBoss Tools提供的功能,所以......还没有解决方案.
我已经安装了Eclipse Mars,并且还从eclipse市场安装了Jboss Tools.
我的问题是,在安装JBoss工具之后,我似乎在菜单栏中为服务器设置了一组控件,这些控件是以Early Learning Center样式创建的.我已经尝试了Window> Perspective> Customize Perspective菜单选项,但我仍然留下了这个糟糕的菜单.有谁知道如何阻止它在我的工具栏上显示?
jboss-tools ×10
eclipse ×5
java ×4
hibernate ×3
jpa ×2
keycloak ×2
wildfly ×2
deployment ×1
eclipse-mars ×1
faces-config ×1
jboss ×1
jsf ×1
jsf-2 ×1
mysql ×1
oauth ×1
orm ×1
swagger ×1
swagger-ui ×1
wildfly-8 ×1
xml ×1