我有一个使用Spring Security的Spring MVC web应用程序。我想知道当前登录用户的用户名。我正在使用下面给出的代码片段。这是公认的方式吗?

我不喜欢在这个控制器中调用静态方法——恕我直言,这违背了Spring的全部目的。有没有一种方法来配置应用程序有当前的SecurityContext,或当前的认证,注入代替?

  @RequestMapping(method = RequestMethod.GET)
  public ModelAndView showResults(final HttpServletRequest request...) {
    final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName();
    ...
  }

完全是新手问题,但这里。

CSS

.product__specfield_8_arrow {

    /*background-image:url(../../upload/orng_bg_arrow.png);
    background-repeat:no-repeat;*/
    background-color:#fc0;
    width:50px !important;
    height:33px !important;
    border: 1px solid #dddddd;
    border-left:none;
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    border-bottom-left-radius:0px;
    border-top-left-radius:0px;
    -moz-border-radius-bottomleft:0px;
    -moz-border-radius-topleft:0px;
    -webkit-border-bottom-left-radius:0px;
    -webkit-border-top-left-radius:0px;
    margin:0;
    padding:2px;
    cursor:pointer;
}​​​

HTML

<span class="product__specfield_8_arrow">&nbsp;</span>​

小提琴

基本上,我试图模拟一个按钮,使一个跨度(或其他东西)看起来像一个按钮旁边的输入字段,实际上不需要是一个,因为自动填充生成器生成错误onEnter。我以为这是暂时的权宜之计但显然不行。

谢谢。

Spring Security中有一些概念和实现,比如用于获得授权/控制访问的权限的GrantedAuthority接口。

我想要允许的操作,如createSubUsers,或deleteAccounts,我将允许一个管理员(角色ROLE_ADMIN)。

当我在网上看到教程/演示时,我感到困惑。我试图把我读到的东西联系起来,但我认为我们可以互换地对待这两者。

我看到hasRole消费授权字符串?我的理解肯定是错的。Spring Security中的这些概念是什么?

我如何存储用户的角色,与该角色的权限分开?

我还查看了org.springframework.security.core.userdetails.UserDetails接口,该接口在身份验证提供程序引用的DAO中使用,该DAO使用一个User(注意上次的GrantedAuthority):

public User(String username, 
            String password, 
            boolean enabled, 
            boolean accountNonExpired,
            boolean credentialsNonExpired, 
            boolean accountNonLocked, 
            Collection<? extends GrantedAuthority> authorities)

或者有没有别的方法来区分这两个?或者它没有支持,我们必须自己做?

在python中是否有一种方法以编程方式确定控制台的宽度?我指的是一行中不换行的字符数,而不是窗口的像素宽度。

Edit

寻找在Linux上工作的解决方案

我想为我的chrome扩展重新加载每次我保存在扩展文件夹中的文件,而不必显式点击“重新加载”在chrome://extensions/。这可能吗?

编辑:我知道我可以更新Chrome重新加载扩展的间隔,这是一个中途的解决方案,但我宁愿让我的编辑器(emacs或textmate)触发保存重新加载或要求Chrome监控目录的变化。

关于这一点有很多问题和文章,但据我所知,没有任何结论性的东西。我能找到的最好的总结就是

flex- base允许您在计算任何其他内容之前指定元素的初始/起始大小。它可以是百分比,也可以是绝对值。

...它本身并没有说明多少具有弹性基集合的元素的行为。以我目前对flexbox的了解,我不明白为什么它不能描述宽度。

我想知道在实践中弹性基准与宽度的确切区别:

如果我用flex- base替换width(反之亦然),视觉上会有什么变化? 如果我将两者设置为不同的值会发生什么?如果它们具有相同的值会发生什么? 在某些特殊情况下,使用宽度或弹性基是否会与使用另一种有显著差异? 当与其他flex样式(如flex-wrap、flex-grow和flex-shrink)结合使用时,宽度和弹性基准有何不同? 还有其他显著差异吗?


编辑/澄清:这个问题在《What exactly flex- base属性集?》中以不同的格式提出过。但我觉得更直接地比较或总结弹性基和宽度(或高度)的差异会更好。

如何在不使用表或JavaScript的情况下实现以下结构?白色边界代表div的边缘,与问题无关。

中间区域的大小会有所变化,但它会有精确的像素值,整个结构应该根据这些值缩放。为了简化它,我需要一种方法来设置“100% - n像素”的宽度为上-中和下-中div。

我很欣赏一个干净的跨浏览器解决方案,但如果不可能,CSS黑客也可以。

这里有个奖励。另一种结构我一直在挣扎,最终使用表格或JavaScript。它略有不同,但引入了新的问题。我主要是在基于jquery的窗口系统中使用它,但我想保持脚本的布局,只控制一个元素的大小(中间的一个)。

我正在Chrome中开发一个扩展,我想知道:当一个元素出现时,最好的方法是什么?使用纯javascript,间隔检查,直到一个元素存在,或jQuery有一些简单的方法来做到这一点?

在JavaScript中,反引号†的工作原理与单引号相同。例如,我可以使用反勾号来定义这样的字符串:

var s = `abc`;

反勾号的行为与单引号的行为有区别吗?


†请注意,在程序员中,“backtick”是通常被称为严肃重音的一个名称。程序员有时也会使用“backquote”和“backgrave”这两个替代名称。此外,在Stack Overflow和其他地方,“backtick”的其他常见拼写是“back-tick”和“backtick”。

从本质上讲,我希望在DIV的内容发生变化时执行脚本。由于脚本是分开的(Chrome扩展和网页脚本中的内容脚本),我需要一种简单地观察DOM状态变化的方法。我可以设置民意调查,但这看起来很草率。