小编D-K*_*otz的帖子

'\ K'在这个正则表达式中意味着什么?

鉴于以下shell脚本,有人会如此善良地解释grep -Po正则表达式吗?

#!/bin/bash
# Issue the request for a bearer token, json is returned
raw_json=`curl -s -X POST -d "username=name&password=secret&client_id=security-admin-console" http://localhost:8081/auth/realms/master/tokens/grants/access`
# Strip away all but the "access_token" field's value using a Python regular expression
bearerToken=`echo $raw_json | grep -Po '"'"access_token"'"\s*:\s*"\K([^"]*)'`
echo "The bearer token is:"
echo $bearerToken
Run Code Online (Sandbox Code Playgroud)

具体来说,我有兴趣了解正则表达式的各个部分

grep -Po '"'"access_token"'"\s*:\s*"\K([^"]*)'`
Run Code Online (Sandbox Code Playgroud)

以及它是如何工作的.为什么这么多报价呢?什么是"K"?我有一些grep正则表达式的经验,但这让我很困惑.

这是curl命令的实际输出,shell脚本(grep)按需运行,只返回"access_token"值的内容.

{ "的access_token": "fQmQKn-xatvflHPAaxCfrrVow3ynpw0sREho7__jZo2d0g1SwZV7Lf4C26CcweNLlb3wmKHHo63HRz35qRxJ7BXyiZwHgXokvDJj13yuOb6Sirg9z02n6fwGy8Iog30pUvffnDaVnUWHfVL-h_R4-OZNf-_YUK5RcL2DHt0zUXI.", "expires_in":60, "refresh_expires_in":1800, "refresh_token": "eyJhbGciOiJSUzI1NiJ9..WeiJOC1jQ52aKgnW8UN2Lv9rJ_yKZiOhijOYKLN2EEOkYF8rvRZsSKbTPFKTIUvjnwy2A7V_N-GhhJH4C-T7F5__QPNofSXbCNyvATj52jGLxk9V0Afvk-Z5QAWi55PJRTC0qteeMRcO2Frw-0KtKYe9o3UcGICJubxhZHsXBLA"," token_type ":" 承载", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJuYW1lIjoiIiwianRpIjoiMGIyMGI0ODctOTI4OS00YTFhLTgyNmMtM2NiOTg0MDJkMzVkIiwiZXhwIjoxNDQ2ODI4MDU5LCJuYmYiOjAsImlhdCI6MTQ0NjgyNzk5OIwouldhaveToBeNutsUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZX0.DmG8Lm4niL1djzNrLsZ2CrsB1ZzUPnR2Nm7IZnrwrmkXsrPxjl6pyXKCWSj6pbk2sgVI8NNFqrGIJmEJ7gkTZWm328VGGpJsmMuJBki0KbqBRKORGQSgkas_34rwzhcTE3Iki8h_YVs2vvNIx_eZSOvIzyEcP3IGHuBoxcR6W3E", "不先于政策":0, "会话状态": "62efc05c-1bf5-4f55-b749-5e0eff94155b"}


如果有人发现这篇文章,这就是我最终使用的内容:

if hash jq 2>/dev/null; then
  # Use the …
Run Code Online (Sandbox Code Playgroud)

regex bash grep

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

在Java中,如何从特定正则表达式创建所有可能数字的列表?

我有一个奇怪的问题,至少有一个我从未遇到过的问题.我有一个前提条件,客户有简单的正则表达式与标签相关联.标签是他们关心的.我想要做的是创建一个列表,列出所有可能匹配这些正则表达式的数字.当列表超出某个阈值时,我会有逻辑警告我.

以下是正则表达式的示例: 34.25.14.(227|228|229|230|243|244|245|246)

让我们说这些ip与ACME有关.在用户选择ACME(在我们的UI中)的幕后,我填写了一个包含所有这些可能数字的过滤器对象,并将它们作为OR查询提交给高度专业化的Vertica数据库.

我无法确定从所述正则表达式创建数字列表的优雅方式.

另一方面,产品的另一部分中的java代码使用这些正则表达式通过使用java Pattern.compile()来显示ACME,这意味着客户'可以'创建复杂的正则表达式.到目前为止,我只看到它们,使用如上所示的简单方法.

是否有一种方法可以生成基于正则表达式的列表?

谢谢你的时间.

java regex

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

Eclipse:当显示方法列表(ctrl-space)时,是否有办法在该类中使用方法 - 粗体?

日食:

当显示方法列表(ctrl-space)时,是否有办法让该类中的方法具有粗体名称?Netbeans已经或者至少有一个功能可以加粗该类中找到的方法的名称,而继承的方法仍然是普通文本.

这使得很容易知道您正在编辑的类中有哪些方法.

有没有办法在最新版本的Eclipse中执行此操作?

谢谢.

java eclipse

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

有没有办法让jmeter在响应数据选项卡中美化json数据?

我厌倦了将JMeter的"响应数据"选项卡中的JSON文本复制到notepad ++中,并使用JSON Viewer插件使JSON文本可读.

是否有JMeter的插件默认执行此操作?

json jmeter

3
推荐指数
2
解决办法
771
查看次数

我如何以编程方式从像j_security_check这样的servlet中调用authenticate

我们有基于Web的表单登录身份验证和j_securtiy_check工作.我们想通过程序化登录身份验证来更改它.让servlet验证传递给它的用户名和密码的正确方法是什么?servlet显然没有受到保护.

我们一直在试验这个server.xml Realm:

<Realm  className="org.apache.catalina.realm.DataSourceRealm"
    dataSourceName="UserDatabase"
    userTable="app_user" userNameCol="login_name" userCredCol="password_value"
    userRoleTable="user_perm" roleNameCol="permission_name"
    allRolesMode="authOnly" digest="MD5"
/>
Run Code Online (Sandbox Code Playgroud)

原因是我们有一个java webstart客户端,它将登录信息发送到不受保护的loginServlet.此servlet当前针对JOSSO单点登录服务进行身份验证,但我希望将其删除并对初学者使用简单的tomcat7身份验证.然后最终迁移到OpenAM.如果我可以以编程方式生成JSSESSIONIDSSO值并将其填充到cookie中.

这是我发现的一些代码.这是调用身份验证的正确方法吗?

ApplicationContextFacade acf = (ApplicationContextFacade) this.getServletContext();

Field privateField = ApplicationContextFacade.class.getDeclaredField("context");  
privateField.setAccessible(true);  
ApplicationContext appContext = (ApplicationContext) privateField.get(acf);  
Field privateField2 = ApplicationContext.class.getDeclaredField("context");  
privateField2.setAccessible(true);  
StandardContext stdContext = (StandardContext) privateField2.get(appContext);  
Realm realm = stdContext.getRealm();  

Principal principal = realm.authenticate(loginBean.getUsername(), loginBean.getPassword());  
if (principal == null)
{
   return 0;
}
GenericPrincipal genericPrincipal = (GenericPrincipal) principal;

System.out.println ("genericPrincipal=" + genericPrincipal.toString());
Run Code Online (Sandbox Code Playgroud)

authentication tomcat servlets j-security-check programmatically-created

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

AWK:有没有办法限制输出字段的宽度?

我需要将字段的最终大小限制为2048.我可以使用:

ACTION_PARAMETER=substr($2,1,2048);
Run Code Online (Sandbox Code Playgroud)

但有更好的方法吗?

linux bash awk gawk nawk

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