我有一个Web应用程序,需要允许用户使用不同的webclients(浏览器,本机移动应用程序等)进行注册.登录后,他们可以访问受限制的内容或他们自己的内容(如他们创建的条目等).
到目前为止我做了什么:我创建了一个jax-rs rest webservice(我在glassfish上托管我的应用程序),它暴露了以下方法:
这是让我感到困惑的地方.
假设我有另一个方法getUserEntries,它应返回用户所做的所有条目.为了更清楚,将有一个包含以下字段的Entry表:entryId,userId,text.
这里最好的方法是什么?
我现在做的是,我发出一个get请求并传入令牌,如下所示:
localhost:8080/myApp/getUserEntries?token=erf34c34
之后,如果令牌有效,我从logedusers表中获取userID并基于该userId获取所有条目并将它们作为json返回.
像这样的东西:
@GET
@Path("getUserEntries")
@Produces(MediaType.APPLICATION_JSON)
public Response getUserEntries(@QueryParam("token") String token) {
String userId=getUserIdFromToken(token);
if (userId == null){
return Response.status(Response.Status.UNAUTHORIZED).build();
} else {
//get some data associated with that userId, put it in the response object and send it back
return Response.ok().entity(response).build();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果有更多方法提供数据(如果有效用户调用),会发生什么?
我必须在每个方法的开头做这个检查.
我想让这个授权过程透明化
那么,这里有两个主要问题:
谢谢
我有一个Crystal报告,可以显示一个或多个(取决于输入)记录.每条记录可以有一个或多个页面.我需要在每个记录后插入一个空白页(不仅是页面上的每个记录,也是每个记录后的空白页).
我已经尝试过检查New Page Before/ New Page After但是我设法得到的只是重复的条目或报告末尾的空白页面(每个记录后我需要一个)
我想要一个简单的单行解决方案,可以打印一个字节。
python3 -c 'print("A", end="")' | xxd -p
python3 -c 'print("\x41", end="")' | xxd -p
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,两行的输出都是 41
python3 -c 'print("\xec", end="")' | xxd -p
Run Code Online (Sandbox Code Playgroud)
这输出: c3ac
我认为这与 python3 使用 utf-8 作为默认编码的事实有关,但是我找不到一个简单的解决方案。
基本上,我想要 python3 相当于:
perl -e 'print "\xec"'
Run Code Online (Sandbox Code Playgroud) glassfish ×1
jax-rs ×1
printing ×1
python ×1
python-3.x ×1
sql-server ×1
token ×1
web-services ×1