目前我的应用程序中有一个身份验证机制,即使用LDAP进行身份验证和授权.我的安全配置如下所示
@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.anyRequest().fullyAuthenticated()
.and()
.httpBasic();
}
@Configuration
protected static class AuthenticationConfiguration extends GlobalAuthenticationConfigurerAdapter {
@Value("${ldap-${env}.manager.dn}")
private String managerDn;
@Value("${ldap-${env}.manager.pass}")
private String managerPass;
@Value("${ldap-${env}.server.url}")
private String url;
@Value("${ldap.password.attribute:userPassword}")
private String passwordAttr;
@Override
public void init(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication().userDnPatterns("uid={0},ou=people").groupSearchBase("ou=groups")
.groupSearchFilter("(member={0})").userSearchBase("ou=people").userSearchFilter("(uid={0})")
.userDetailsContextMapper(new CustomLdapPersonContextMapper())
// .passwordCompare()
// .passwordAttribute(passwordAttr)
// .passwordEncoder(new PlaintextPasswordEncoder())
// .and()
.contextSource().managerDn(managerDn).managerPassword(managerPass).url(url);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,用户可能会使用会话令牌进入会话令牌,该会话令牌可以从会话密钥服务器进行身份验证,并且有效令牌会返回用户名,然后可以使用该用户名从LDAP为该用户加载身份验证信息.所以我的第二个身份验证机制应该首先发生,如果http头中存在会话令牌,它应该执行令牌身份验证然后执行ldap查找,如果没有会话令牌,它应该属于当前的身份验证机制.如何添加第二层身份验证.
使用Marked我可以在实现过程中轻松覆盖/添加/更改词法分析器规则,它非常棒!例如,我可以强制在散列符号和文本之间使用空格来制作这样的标题:
var lexer = new marked.Lexer(options);
console.log(lexer);
lexer.rules.heading = /^\s*(#{1,6})\s+([^\n]+?) *#* *(?:\n+|$)/
console.log(marked.parser(lexer.lex('#hashtag?'), options));
//<p>#hashtag?</p>
console.log(marked.parser(lexer.lex('# heading?'), options));
//<h1 id="undefinedheading-">heading?</h1>
Run Code Online (Sandbox Code Playgroud)
凉!
但有没有办法,轻松做同样的事情inlineLexer?就像我需要让人们能够添加下一个序列的图像:%[My Image](http://example.com/img.jpg)?所以我修改了:
var inlineLexer = marked.InlineLexer;
inlineLexer.rules.link = /^[!%]{0,1}?\[((?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*)\]\(\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*\)/;
...
Run Code Online (Sandbox Code Playgroud)
接下来我该怎么办?如何将自定义inlineLexer绑定到标记的实例?请给我看一个如何做到这一点的例子!如何修改/添加自定义内联词法分析器规则?
对于Rust的结构,是否有一些等效的JS的Object.keys()?
我需要从结构字段名称生成CSV标题(我使用rust-csv).
struct Export {
first_name: String,
last_name: String,
gender: String,
date_of_birth: String,
address: String
}
//... some code
let mut wrtr = Writer::from_file("/home/me/export.csv").unwrap().delimiter(b'\t');
wrtr.encode(/* WHAT TO WRITE HERE TO GET STRUCT NAMES as tuple of strings or somethings */).is_ok()
Run Code Online (Sandbox Code Playgroud) 这是JSFiddle.
我这里有两件事.
game.input.onDown,做一些逻辑(在我的例子生成的颗粒)textButton.events.onInputDown,textButton是一个Phaser.Text对象实例,它执行另一个逻辑.问题是:当我点击我的textButton时,两个事件都被触发1和2.
问题是,当我点击textButton时如何防止事件1被触发?
部分代码:
...
//This event is fired on click anywhere event # 1
game.input.onDown.add(particleBurst, this);
//This is Clickable text
textButton = game.add.text(game.world.width - 5, 5, "CLICK ME", fontStyle);
textButton.anchor.setTo(1, 0);
textButton.inputEnabled = true;
//This event is fired on click on text event # 2
textButton.events.onInputDown.add(function () {
console.log("button is Clicked");
}, this, 2);
...
Run Code Online (Sandbox Code Playgroud) 我使用Sails.js和默认模板引擎(EJS).我有一个直接从routes config定义的视图:
配置/ routes.js
'/': {
view: 'homepage'
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在homepage.ejs中访问环境?我需要这样的东西:
views/homepage.ejs(下一个不起作用,所以我需要一个有效的解决方案)
...
<span>Hello you are on <%= sails.env %> environment</span>
...
Run Code Online (Sandbox Code Playgroud)
呈现为:
Hello you are on production environment
Run Code Online (Sandbox Code Playgroud)
请不要建议我为此创建控制器.
我希望有办法直接从视图或路线中的当地人那里得到它,但是如何,这就是问题.
我有两个模型:
订单.js
module.exports = {
attributes: {
//Id is generated by mongo and is a primary key
address: {
type: 'string',
required: true,
size: 1000
},
status: {
type: 'string',
required: true,
size: 15,
defaultsTo: 'pending',
enum: ['pending', 'processing', 'cancelled']
},
total: {
type: 'string',
required: true,
size: 50
},
menues: {
collection: 'menu',
via: 'orders',
dominant: true
},
customer: {
model: 'customer'
}
}
};
Run Code Online (Sandbox Code Playgroud)
和Menu.js
module.exports = {
attributes: {
//Id is generated by mongo
name: { …Run Code Online (Sandbox Code Playgroud) 我试图用babel.transform而不是JSXTranformer反应.
...
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine nashorn = mgr.getEngineByName("nashorn");
nashorn.eval("var process = {env:{}}"); // node-modules expect that
nashorn.eval(getScript("com/facebook/babel/jvm-npm.js"));
babel = (JSObject) nashorn.eval("require('babel');");
...
Run Code Online (Sandbox Code Playgroud)
Babel和babel-core安装为全局节点模块,我有一个错误:
Testsuite:com.my.app.BabelTransformerTest
找不到模块./lib/api/node.js
无法加载模块babel-core LOAD_ERROR
无法加载模块babel LOAD_ERROR
无法加载模块babel-core LOAD_ERROR
无法加载模块babel LOAD_ERROR
无法找到模块./ lib/api/node.js
无法加载模块babel-core LOAD_ERROR
无法加载模块babel LOAD_ERROR
该./lib/api/node.js中有C:\Users\***\AppData\Roaming\npm\node_modules
我听说有可能babel.transform从Nashorn出发吗?
也许有办法只加载某个babel模块作为JavaScript文件?
就像我们在Spring Framework中有很多变体来设置编译/运行/测试时环境,并使用它来设置不同的属性文件.除了这个环境/配置文件变量之外,我们不会更改任何内容,以便能够对app进行适当的设置.
更具体地说:
我有两个文件:settings.dev.js和settings.prod.js
settings.prod.js:
var API_PATH = "http://example.com/api"
var OTHER_INPORTANT_SETTINGS = {....}
Run Code Online (Sandbox Code Playgroud)
settings.dev.js:
var API_PATH = "http://localhost.com/api"
var OTHER_INPORTANT_SETTINGS = {....}
Run Code Online (Sandbox Code Playgroud)
和一个Ionic Framework应用程序,其中服务正在使用此设置.例如
me: $resource(API_PATH + '/my/profile', {}, {...}
Run Code Online (Sandbox Code Playgroud)
在许多服务和控制器以及指令......等等......
有没有办法使用
javascript cordova gruntjs hybrid-mobile-app ionic-framework
我在教学中做得非常出色:https://crosswalk-project.org/documentation/cordova/migrate_an_application.html
在成功构建xwalk_core_library和CordovaLib之后
我正在运行cordova构建android并面临错误:
[javac] Compiling 8 source files to D:\myapp\platforms\android\bin\classes
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] D:\myapp\platforms\android\src\com\in2circle\fellor\CordovaApp.java:33: error: cannot find symbol
[javac] loadUrl(launchUrl);
[javac] ^
[javac] symbol: variable launchUrl
[javac] location: class CordovaApp
[javac] 1 error
Run Code Online (Sandbox Code Playgroud)
Crosswalk v 9.38.208.10.
var variable = "before";
change();
alert(variable);
function change(){
variable = "after";
}
Run Code Online (Sandbox Code Playgroud)
是否可以在不返回的情况下更改函数内的全局变量?我需要在通话功能change后输出"后"