我正在编写一个 fastapi Web 应用程序,它使用 OKTA iDP 和 SAML 2.0 SSO 进行身份验证。我想在网络应用程序中保护我的 API。我知道 fastapi 仅具有基于 Oauth2/token 的 API 保护,而不是基于 cookie 或会话的保护。但是,在身份验证成功后,我们仅从 IDP 收到会话信息(会话索引)。如何使用此会话索引信息来保护 Web 应用程序中的 api?有什么方法可以将接收到的会话转换为令牌并将其保存在 fastapi 应用程序中以用于保护吗?或者请建议我其他方式?
from fastapi import FastAPI
app = FastAPI()
@app.login("/sso/login")
async def login():
# got sessionindex from Okta IDP
return session
@app.logout("/sso/logout")
async def logout():
# delete session received from Okta IDP on logout
return
@app.get_graph() <----------------------
async def get_graph():
# how can i protect this api. so that i can access only
# on …Run Code Online (Sandbox Code Playgroud) 如何在下面的 Kubernetes 命令输出中将 RESTART 计数重置为零。我知道统计数据保存在 etcd 中,但如何重置/删除数据?
/home/mytest>kubectl get pods -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default load-generator 1/1 Running 2 3d21h 192.168.252.102 testnode <none> <none>
kube-system calico-kube-controllers-65f8bc95db-ph48b 1/1 Running 7 51d 192.168.252.80 testnode <none> <none>
kube-system calico-node-tr8dr 1/1 Running 6 51d 10.61.62.152 testnode <none> <none>
kube-system coredns-66bff467f8-lcn5z 1/1 Running 18 51d 192.168.252.116 testnode <none> <none>
kube-system coredns-66bff467f8-tmgml 1/1 Running 17 51d 192.168.252.123 testnode <none> <none>
kube-system etcd-testnode 1/1 Running 23 …Run Code Online (Sandbox Code Playgroud) 是否可以使用 C 在客户端套接字程序中关闭旧服务器 IP 连接并将其连接到新服务器 IP?我的客户端程序通过 SCTP 连接与服务器连接,在某些情况下我想断开与旧服务器的连接并连接到新服务器而不打开新套接字?客户端代码:
connSock = socket (AF_INET, SOCK_STREAM, IPPROTO_SCTP);
if (connSock == -1)
{
perror("socket()");
exit(1);
}
struct sctp_paddrparams params;
len = sizeof(params);
memset(¶ms, 0, sizeof(params));
if (getsockopt(connSock, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, ¶ms, &len)) {
perror("getsockopt");
exit(1);
}
// set client address
struct sockaddr_in localaddr;
localaddr.sin_family = AF_INET;
char* client_ip = get_our_ip();
localaddr.sin_addr.s_addr = inet_addr(client_ip) ;
localaddr.sin_port = 0;
bind(connSock, (struct sockaddr *)&localaddr, sizeof(localaddr));
// set server address
bzero ((void *) &servaddr, sizeof (servaddr));
servaddr.sin_family = AF_INET; …Run Code Online (Sandbox Code Playgroud)