小编dra*_*gon的帖子

如何解决-Keycloak-客户端不允许交换

我尝试从文档中实现Keycloak直接裸模拟,但最终得到了错误:

"error": "access_denied",
"error_description": "Client not allowed to exchange"
Run Code Online (Sandbox Code Playgroud)

这是 Postman 设置,其中包含admin-cli、 clientId 和用户justin,我想获取其令牌,该令牌存在于“用户”部分中。

在此输入图像描述

我在 Postman 中使用的 admin-cli 密钥:

在此输入图像描述

我遵循了Keycloak Direct Naked Impersonation 文档中的所有步骤。

  1. 将“启用用户权限”切换为“开”。 在此输入图像描述

  2. 为此权限定义策略。 在此输入图像描述

  3. 将客户端策略(在我的例子中为“客户端模拟者”)添加到用户的模拟权限中 在此输入图像描述

  4. 这是 Keycloak 推荐的请求设置,可以让这种直接的裸体模拟发挥作用。您在我上面的邮递员设置中看到了这一点。

curl -X POST \
    -d "client_id=starting-client" \
    -d "client_secret=the client secret" \
    --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
    -d "requested_subject=wburke" \
    http://localhost:8080/realms/myrealm/protocol/openid-connect/token
Run Code Online (Sandbox Code Playgroud)

在 Docker 内部,我设置了 token_exchange=enabled 和 admin_fine_grained_authz=enabled

- name: "KEYCLOAK_EXTRA_ARGS"
  value: "-Dkeycloak.profile.feature.admin=enabled -Dkeycloak.profile.feature.admin_fine_grained_authz=enabled -Dkeycloak.profile.feature.token_exchange=enabled"
Run Code Online (Sandbox Code Playgroud)

我日复一日地搜索有关这个主题的内容,并测试了目前互联网上有关该主题的所有可用选项,但没有成功。

如果这对您有用,请分享您的解决方法。或者至少请给出一些想法,也许我错过了一些东西。

为user-impersonate创建新策略,我在其中添加了用户 Justin

在此输入图像描述

然后在权限中我添加了这个策略

在此输入图像描述

keycloak token-exchange

4
推荐指数
1
解决办法
4683
查看次数

Angular JS中的随机函数

我有一个带有问题的json文件,所以是一个数组.我想让所有问题都是随机的.这是我的js文件代码,但我不知道为什么不起作用.

$http.get('quiz_data.json').then(function(quizData){
        $scope.myQuestions = quizData.data;
        $scope.myQuestions = Math.floor(Math.random()*2);
    });
Run Code Online (Sandbox Code Playgroud)

并在HTML中

<div ng-repeat="myQuestion in myQuestions"> <p class="txt">{{myQuestion.question}}</p></div>

javascript angularjs

1
推荐指数
1
解决办法
1250
查看次数

获取类似字符串的数字,转换它并每秒添加一个

我在面试时遇到了这个问题,但我失败了.我的答案很接近,但我没有完成剧本.问题是:从段落中获取文本,添加一个并每秒将新值放回段落中.我的逻辑是,在p中,数字是一个字符串.我用parseInt将其转换为数字,然后检查是否为NoNaN,警告不是数字,否则用1增加值并将其重新放入p.

有人请告诉我我哪里错了.

JS:

$(function() {
    setInterval("addOne()", 1000);
});

function addOne() {
    var divP = $("div p").text();
    parseInt(divP);
    if (isNaN(divP)) {
        alert("Not a number!");
    } else {
        divP++;
        $("div p").text();
    }
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div>
    <p>1</p>
</div>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

1
推荐指数
1
解决办法
63
查看次数

如何避免 React/Redux 中的内联函数

我遵循 React/Redux 教程,从我在互联网上看到的一些文章中我意识到内联函数对 React 的性能不利。

据我了解,函数是引用类型,如果您使用内联函数,则对于每次重新渲染,该函数将在内存中占据不同的位置。

在教程示例中,我有这个 deleteExperience() 方法,讲师使用了内联方法。

import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import Moment from 'react-moment';
import { Link, withRouter } from 'react-router-dom';
import { deleteExperience } from '../../actions/profileActions';

const Experience = ({ experience, deleteExperience }) => {
  const experiences = experience.map(exp => (
    <tr key={exp._id}>
      <td>{exp.company}</td>
      <td className="hide-sm">{exp.title}</td>
      <td>
        <Moment format="YYYY/MM/DD">{exp.from}</Moment> -
        {exp.to === null ? (
          ' Now '
        ) : (
          <Moment format="YYYY/MM/DD">{exp.to}</Moment> …
Run Code Online (Sandbox Code Playgroud)

reactjs redux

1
推荐指数
1
解决办法
525
查看次数

如何解决错误:超出最大更新深度?

我两周前开始学习React Native,并进入了“安装插件”一章。我安装了react-native-popover-view,我不知道,但是对我来说我得到了错误:

Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.

我四处搜索,并在此停留两天后,我知道我在render()中有setState,因为我在App render()中有Modal。我试图弄清楚如何更改它,但没有成功。

所以我有Modal.js类:

class Modal extends Component {
  state = {
    isVisible: true
  }

  closePopover() {
    this.setState({ isVisible: false });
  }

  render() {
    return (
      <View >
        <Popover
          isVisible={this.state.isVisible}
          fromView={this.touchable}
          onRequestClose={() => this.closePopover()}>
          <View style={styles.closeXContainer}>
              <Image source={closeX} style={styles.closeX} onPress={this.closePopover()} />
            </View>
          <Text>I'm the content of this popover!</Text>
        </Popover> …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native

0
推荐指数
1
解决办法
70
查看次数