我有简单的jinja2模板和注册/登录链接,我应该在用户登录时隐藏它们,我也使用flask_login模块来处理这个问题.
问题是:如何识别用户是否登录jinja2模板?
我在行中有TypeError,我在表单上调用'validate()'.
错误是:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/valery/projects/easy_booking/easy_booking/controllers/users.py", …
Run Code Online (Sandbox Code Playgroud) 我想为我的控制器编写测试:
Result changeAction = callAction(controllers.routes.ref.Users.changePassword());
assertThat(status(changeAction)).isEqualTo(OK);
Run Code Online (Sandbox Code Playgroud)
我有一个http状态代码 - 300.
这是正确的,因为我有一个名为Secured的类
package controllers;
import play.mvc.*;
import play.mvc.Http.*;
public class Secured extends Security.Authenticator {
@Override
public String getUsername(Context ctx) {
return ctx.session().get("userId");
}
@Override
public Result onUnauthorized(Context ctx) {
return redirect(routes.Users.login(ctx.request().uri()));
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用@Security.Authenticated(Secured.class)
控制器方法的注释时,如果不存在与"userId"的会话,则重定向.
所以问题是,我怎么能伪造会话?
我试着明白了 Controller.session("usderId", "2");
并得到一个例外:
java.lang.RuntimeException: There is no HTTP Context available from here.
at play.mvc.Http$Context.current(Http.java:30)
at play.mvc.Controller.session(Controller.java:54)
at play.mvc.Controller.session(Controller.java:61)
at controllers.UsersTest.testUnloginedChangePassword(UsersTest.java:35)
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何伪造控制器的会话?
还有一个问题:如何在不使用弃用的API的情况下测试路由,比如Result result = routeAndCall(fakeRequest(GET, "/change_password"));
?
我需要cert.pem和key.pem for API(在我的节点js后端)但我只是从App ID - > Edit - > Download下载.cert文件.我怎样才能得到它,我可以从.cer文件中提取它?
我在scala REPL中尝试以下代码:
"ASD-ASD.KZ".split('.')
res7: Array[String] = Array(ASD-ASD, KZ)
"ASD-ASD.KZ".split(".")
res8: Array[String] = Array()
Run Code Online (Sandbox Code Playgroud)
为什么这个函数调用有不同的结果?
我想简单测试JDBC连接,我不使用框架,只使用JDBC和JUnit.我可以用JUnit执行此测试吗?我不知道如何测试加载驱动程序,请给我一些连接测试的例子.
连接客户端:
package newpackage.db;
import java.sql.Connection;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SqlConnection {
private Connection con;
private String name;
private String url;
private String password;
private String driver;
public SqlConnection() {
this.name = "root";
this.password = "12345";
this.url = "";
this.driver = "com.mysql.jdbc.Driver";
}
public Connection getConnection() {
try {
Class.forName(driver);
} catch (ClassNotFoundException ex) {
Logger.getLogger(SqlConnection.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
测试用例:
public void testDriverManager() {
SqlConnection conClient = new SqlConnection();
assertEquals(conClient.getConnection(),...);
or
assertTrue(conClient.getConnection(),...);
}
Run Code Online (Sandbox Code Playgroud) 我正在编写 Node js 应用程序,我想阻止我的应用程序上的一些 url(对所有用户关闭)。可以这样做吗?注意:我想关闭/打开注册和身份验证。 更新: 我使用express js框架
当我在我的节点js + passport app中打开任何url时,我有2个数据库请求(可能是deserialze方法调用).
我的日志:
NEW QUERY____________________
SELECT * FROM users WHERE id=$1
[ '1' ]
GET / 200 248ms - 829b
NEW QUERY____________________
SELECT * FROM users WHERE id=$1
[ '1' ]
GET /stylesheets/style.css 404 3ms
Run Code Online (Sandbox Code Playgroud)
反序列化方法和中间件:
app.configure(function() {
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.cookieParser());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.session({
secret: "thisismysecretkey",
store: new RedisStore({ host: 'localhost', port: 6379, client: redisClient })
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
});
passport.serializeUser(function(user, …
Run Code Online (Sandbox Code Playgroud) 我刚开始学习haskell和模式匹配.我只是不明白它是如何实现的,是因为多态性而对这种模式的不同类型和函数实现进行评估[]
和(x:_)
评估,或者我只是错了并且使用了另一种技术.
head' :: [a] -> a
head' [] = error "Can't call head on an empty list, dummy!"
head' (x:_) = x
Run Code Online (Sandbox Code Playgroud)
或者让我们考虑这种模式匹配功能:
tell :: (Show a) => [a] -> String
tell [] = "The list is empty"
tell (x:[]) = "The list has one element: " ++ show x
tell (x:y:[]) = "The list has two elements: " ++ show x ++ " and " ++ show y
tell (x:y:_) = "This list is long. …
Run Code Online (Sandbox Code Playgroud) 我有Main类,StartFrame扩展了JFrame,UserPanel扩展了我添加到StartFrame的JPanel.我在UserPanel中有按钮,当我按下按钮时如何关闭StartFrame(我熟悉事件处理它不是问题,问题是如何将信息发送到StartFrame).或者最好只更换框架面板(尺寸,如果需要)并重复使用?
我不熟悉反应,我尝试在登录/表格等方面构建以下抽象.
看看这个:
var SignUpForm = React.createClass({
handleSubmit: function(e) {
e.preventDefault();
console.log(this.refs.iitu_id.getDOMNode().value.trim())
// iitu_id = this.refs.iitu_id.getDOMNode().value.trim();
// password = this.refs.password.getDOMNode().value.trim();
var error = UserValidator.valid({iitu_id: iitu_id, password: password});
if (error) {
this.setState({"errors": error });
// console.log(error);
} else {
// console.log(error);
}
},
getInitialState: function() {
return {
'errors': {
iitu_id: null,
password: null
}
};
},
render: function() {
return (
/*jshint ignore:start */
<form className="form-horizontal" onSubmit={this.handleSubmit} >
<FormGroup label="iitu id" error_msg={this.state.errors.iitu_id} fieldName="iitu_id" fieldType="text" />
<FormGroup label="password" error_msg={this.state.errors.password} fieldName="password" fieldType="password" /> …
Run Code Online (Sandbox Code Playgroud) java ×3
express ×2
flask ×2
node.js ×2
python ×2
python-2.7 ×2
testing ×2
certificate ×1
dom ×1
flask-login ×1
haskell ×1
ios ×1
javascript ×1
jdbc ×1
jframe ×1
jinja2 ×1
jpanel ×1
junit ×1
list ×1
passport.js ×1
reactjs ×1
scala ×1
split ×1
swing ×1
wtforms ×1