我对 Keycloak 服务器非常陌生,想用它来保护我的前端应用程序和后端 REST API,它们也通过互联网开放。到目前为止,我理解和所做的是在 Keycloack 上创建 2 个客户端,1 个用于使用客户端协议(openid-connect)和访问类型(公共)的前端,然后在客户端我使用采用者将用户重定向到 Keycloak 登录页面并进行身份验证并获取令牌。现在,对于后端(rest-apis),我创建了一个单独的客户端,它再次使用客户端协议(openid-connect),但具有访问类型(机密)并且在身份验证流程中:浏览器流和直接授予流都是直接授予,然后我得到客户端 ID 和客户端秘密来调用 Keycloak Rest api。
现在我希望当用户从前端进行身份验证并获取令牌并将标头请求发送到我的其余 API 时,我在这里调用一些 Keycloak 其余 api 通过提供 client_id 和 client_secret 来验证此令牌。
我正在使用 Keycloak 中的以下 REST API 来验证我在前端生成的令牌:
http://localhost:8120/auth/realms/evva_realm/protocol/openid-connect/token/introspect
Run Code Online (Sandbox Code Playgroud)
但结果是这样的:
{
"active": false
}
Run Code Online (Sandbox Code Playgroud)
我可能使用了一些错误的 api 或整个架构来验证和保护我的后端 api 不正确。有人可以帮助我了解问题出在哪里吗?
authentication keycloak keycloak-services keycloak-connect keycloak-rest-api
我在文件旁边有以下文本:
versionName "1.11.0"
Run Code Online (Sandbox Code Playgroud)
每次运行这样的命令时,我都想增加数字:
versionName "1.12.0"
versionName "1.13.0"
versionName "1.14.0"
Run Code Online (Sandbox Code Playgroud)
我正在使用以下命令来增加数字,但它替换了没有双引号的数字文本,并像 1、2、3、4 一样递增。这是我的命令:
awk '/versionName /{++$NF}1' test > tmp && mv tmp test
Run Code Online (Sandbox Code Playgroud)
有人能告诉我如何只增加第二个数字吗
我试图在 div 块中显示一个长文本,并希望如果文本超过 div 高度,则需要显示“...”,否则将整个文本填充到一个块中。但问题是,使用 css text-overflow:ellipsis 会将整个长文本剪切为一行文本,并将这些点放在可以写入更多文本的下方空间中。
<div class="hide-long-text">
Run Code Online (Sandbox Code Playgroud)
现在长了呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜
.hide-long-text {
height: 80px;
width: 110px;
border: 1px solid #adb8c0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
这是一个提琴手链接 有人可以给我一个提示,我可以如何使用这个可用空间,当文本超过 div 高度时,然后显示“...”
I am using jetty to implement websocket client. This is producing a lot of noise in log file in start up of application and when failed reconnect websocket. Actually in case of websocket connection failure i am retrying after a minute so after every minute it it producing this kind of log:
2017-06-12 14:23:04 | DEBUG | [main] o.e.j.u.log:173 - Logging to Logger[org.eclipse.jetty.util.log] via org.eclipse.jetty.util.log.Slf4jLog
2017-06-12 14:23:04 | INFO | [main] c.h.h.v.c.WebSocketListener:53 - STARTING WS Client
2017-06-12 14:23:04 | DEBUG …Run Code Online (Sandbox Code Playgroud) 我在主活动中使用 BroadcastReceiver 并在 OnCreate 中注册它并尝试在 Destroy 上取消注册它,但有时应用程序崩溃,因为它表明我正在尝试取消注册已取消注册的接收器。这是我的代码:
\n\n@Override\n public void onCreate(Bundle savedInstanceState) {\n ...\nLocalBroadcastManager.getInstance(this).registerReceiver(forceLogoutRequest, new IntentFilter(CommonUtils.FORCE_LOGOUT));\n}\n\n @Override\n public void onDestroy() {\n super.onDestroy();\nif(forceLogoutRequest!=null) {\n unregisterReceiver(forceLogoutRequest);\n forceLogoutRequest = null;\n }\n}\n\n\n private BroadcastReceiver forceLogoutRequest = new BroadcastReceiver() {\n @Override\n public void onReceive(Context context, Intent intent) {\n ..\n ..\n\n }\n };\nRun Code Online (Sandbox Code Playgroud)\n\n这就是我在控制台中得到的:
\n\n 10-12 13:28:34.644 5772-6344/? E/AndroidRuntime: FATAL EXCEPTION: main\n Process: com.myapp.nurse, PID: 5772\n java.lang.RuntimeException: Unable to destroy activity java.lang.IllegalArgumentException: Receiver not registered: com.myapp.hp.nurse.activity.MainActivity$5@1a174913\n at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3812)\n at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3830)\n at android.app.ActivityThread.access$1400(ActivityThread.java:156)\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)\n …Run Code Online (Sandbox Code Playgroud) 我有一个设备可以在我的 Linux 服务器上发送 HTTP 请求。我想查看从该设备到特定端口上的 Linux HTTP 服务器的所有传入请求格式。我已经使用 Tcpdump 尝试过这一点,但它似乎不是人类可读的,很难理解该设备发送的 HTTP 请求类型。我可以在 ubuntu 服务器上使用任何命令/工具来跟踪此类信息吗?
我有一个在下面运行良好的应用程序Android9 phones。最近我开始测试我的应用程序android 9并面临一个奇怪的问题,即简单的 https/http 后调用不起作用,并且 library( com.loopj.android) 给出了一个无法连接的异常。我知道有一个与网络相关的变化,我尝试了我在互联网上找到的所有东西,但仍然没有运气。这是我的配置:
清单.xml:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
tools:targetApi="28"
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true">
</application>
Run Code Online (Sandbox Code Playgroud)
res/xml 中的network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">my-backend.hostname.dk</domain>
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
我正在使用正确的密钥库签署应用程序: build.gradle:
signingConfigs {
release {
storeFile file("../myApp-release.keystore")
storePassword "abcd1234"
keyAlias "myApp-release"
keyPassword "abcd1234"
}
}
Run Code Online (Sandbox Code Playgroud)
还尝试为 httpclient使用正确的SSLFactory:
AsyncHttpClient client = new AsyncHttpClient();
try {
KeyStore trustStore …Run Code Online (Sandbox Code Playgroud) ssl android android-permissions android-security android-9.0-pie