小编Iva*_*var的帖子

api-platform:如何安全地进行自定义操作

我想知道如何使用api平台保护自定义项的操作,我在文档中找到了以下代码:

/**
 * Secured resource.
 *
 * @ApiResource(
 *     attributes={"access_control"="is_granted('ROLE_USER')"},
 *     collectionOperations={
 *         "get"={"method"="GET"},
 *         "post"={"method"="POST", "access_control"="is_granted('ROLE_ADMIN')"}
 *     },
 *     itemOperations={
 *         "get"{"method"="GET","access_control"="is_granted('ROLE_USER') and object.owner == user"}
 *     }
 * )
 * @ORM\Entity
 */
Run Code Online (Sandbox Code Playgroud)

但我想做类似的事情:

/**
 * @ApiResource(itemOperations={
 *     "get"={"method"="GET"} //Public route,
 *     "special"={"route_name"="special", "access_control"="is_granted('ROLE_ADMIN') or object.owner == user"}},
 *     "special2"={"route_name"="special2",  "access_control"="is_granted('ROLE_USER')"}
 * })
 */
Run Code Online (Sandbox Code Playgroud)

它行得通吗?还是我必须检查特殊Action文件中的用户角色?

在这种情况下,最佳做法是什么?

php symfony api-platform.com

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

Javascript函数中的继承错误

我以下列方式在JavaScript中应用继承:

var employee = function(name) {
  this.name = name;
}
employee.prototype.getName = function() {
  return this.name;
}
var pEmployee = function(salary) {
  this.salary = salary;
}
pEmployee.prototype.getSalary = function() {
  return this.salary;
}

var employee = new employee("mark");
pEmployee.prototype = employee;
var pe = new pEmployee(5000);
console.log(pe.getName());
console.log(pe.getSalary());
Run Code Online (Sandbox Code Playgroud)

但它在控制台中显示以下错误:

未捕获的TypeError:pe.getSalary不是函数

谁能告诉我这个错误背后的原因是什么?

javascript inheritance

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

返回匿名函数是否应该以分号结尾?

MDN使用我提供的第二个代码,它可以正常运行,但最后会引发错误。他们为什么用分号结束匿名功能?如果匿名函数不存在于函数表达式中,可以吗?如果函数不是函数表达式,则不应以分号结尾。

function makeAdder(x) {
  return function(y) {
    return x + y;
  }
}

var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2));  // 7
console.log(add10(2)); // 12
Run Code Online (Sandbox Code Playgroud)

function makeAdder(x) {
  return function(y) {
    return x + y;
  };
}

var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2));  // 7
console.log(add10(2)); // 12
Run Code Online (Sandbox Code Playgroud)

javascript

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

为什么在类方法中使用我的实例属性时未定义?

尝试运行时cow1.voice();,控制台中始终出现错误。

未捕获ReferenceError:类型未定义

class Cow {
  constructor(name, type, color) {
    this.name = name;
    this.type = type;
    this.color = color;
  };
  voice() {
    console.log(`Moooo ${name} Moooo ${type} Moooooo ${color}`);
  };
};

const cow1 = new Cow('ben', 'chicken', 'red');
Run Code Online (Sandbox Code Playgroud)

javascript instance-variables es6-class

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

为什么 JavaScript 中的 "5" + 2+3 和 2+3+ "5" 不同?

为什么 JavaScript 中的 "5" + 2+3 和 2+3+ "5" 不同?

这如果给我错误的结果。

<p>The result of adding "5" + 2 + 3</p>

<p id="demo"></p>

<script>
  x = "5" + 2 + 3;
  document.getElementById("demo").innerHTML = x;
</script>

<p> result of adding 2+3+"5"</p>
<p id="qwe"></p>
<script>
  y = 2 + 3 + "5";
  document.getElementById("qwe").innerHTML = y;
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

无法使用Keycloak验证应用程序用户的登录

我正在研究 React 应用程序与 Keycloak 的集成。我已在本地计算机上安装了 Keycloak 服务器版本 11.0.2。我能够访问管理登录并创建管理员用户。我还使用 Keycloak 创建了一个带有凭据的自定义客户端和用户。我的 React 应用程序托管在我的机器的端口 9000 上,Keycloak 托管在 8080(默认)端口上。现在,当我重定向到我的应用程序 URL 时,它会自动重定向到以下 URL:

http://localhost:8080/auth/realms/{Custom_realm}/protocol/openid-connect/auth?client_id={Custom_Client}&redirect_uri=http%3A%2F%2Flocalhost%3A9000%2F&state=r8yy83fdgd-27f8-4aa9-a679-01sfdsgd9&response_mode=fragment&response_type=code&scope=openid&nonce=27fedfgf89-66be-4484-bbcc-aabb4saddc4
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

URL 正在渲染登录页面,无需 CSS。不知道为什么 CSS 没有被渲染。而且它也没有进行身份验证并给出错误

无法 POST /realms/{Realm}/login-actions/authenticate

java reactjs keycloak keycloak-services keycloak-rest-api

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

事件循环是否与 JS 主线程在同一线程上运行?

我试图理解异步 JavaScript,但我想知道的一件事是,事件循环是否在主线程上运行?如果是这样,是否所有同步代码都Main()必须经过事件循环?(例如,console.log("Hello")还必须经过事件循环吗?)
并且事件循环是唯一允许将函数推送到调用堆栈的循环吗?

javascript multithreading asynchronous event-loop

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

Java 中的什么方法返回两个整数的绝对差?

MathJava类中有没有返回两个整数的绝对差的方法?

int absDiff = 8 - 15;
int answer = 7;
Run Code Online (Sandbox Code Playgroud)

java integer absolute-value

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

使用迭代器循环遍历 HashMap 不会因 if 条件而停止

AHashMap<Integer, Integer>有 10 个条目,但我只想打印 3 个条目。

代码:

HashMap<Integer,Integer> hm = new HashMap<Integer,Integer>();
hm.put(2, 1);
hm.put(5, 3);
hm.put(7, 2);
hm.put(4, 1);
hm.put(6, 3);
hm.put(8, 2);
hm.put(9, 1);
hm.put(3, 3);
hm.put(1, 2);       
hm.put(0, 2);
Iterator <Map.Entry<Integer, Integer>> itr = hm.entrySet().iterator();
int n=4;
int i=0;
while(itr.hasNext()){
    if(i<n){
        Map.Entry<Integer, Integer> entry = itr.next();
        System.out.println(entry.getKey()+" repeated "+entry.getValue());
    }
    i++;
}
Run Code Online (Sandbox Code Playgroud)

输出

0 repeated 2
1 repeated 2
2 repeated 1
3 repeated 3 //program will wait for 2 or 3 seconds here
4 …
Run Code Online (Sandbox Code Playgroud)

java iterator if-statement hashmap while-loop

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

在哪里放置RemoteCertificateValidationCallback?

遇到与此处相同的问题:如何在Webbrowser控件中禁用"安全警报"窗口

我喜欢这个答案,但是我要去哪里ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

在我使用以下代码提交学校网络的登录页面后,我收到"无效认证"消息:

HtmlElementCollection ellements = webBrowser.Document.GetElementsByTagName("input");
foreach (HtmlElement ellement in ellements)
{
    if (ellement.OuterHtml == "<INPUT onclick=\"this.value = 'Submitted'\" value=\" Login \" type=submit>")
    {
        ellement.InvokeMember("click");
        this.DialogResult = DialogResult.OK;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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