在 Groovy 中,有人可以向我解释为什么下面的代码尽管没有返回类型却不会失败吗?
protected assertRequired(String name, String tag, attrs) {
if (!attrs.containsKey(name)) {
throwTagError "Tag [$tag] is missing required attribute [$name]"
}
return attrs[name] // conserva la propiedad en attrs.
}
Run Code Online (Sandbox Code Playgroud) 我正在将Gigya与运行Acegi的网络应用程序集成.
我有它的工作,客户端Gigya可以验证现有用户,然后跳过登录表单帖子并点击控制器方法,以通知服务器,由Gigya执行用户身份验证.
在我的控制器中使用以下代码,我能够告诉Acegi用户已经过身份验证.
def user = com.playhardsports.football.web.admin.auth.User.find("from User where username=?", [UID])
def authorities = [new GrantedAuthorityImpl('ROLE_USER')] as GrantedAuthority[]
def userDetails = new org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserImpl(UID, fakePassword, true, true, true, true, authorities, user)
def authentication = new UsernamePasswordAuthenticationToken(userDetails, fakePassword, authorities)
SecurityContextHolder.context.authentication = authentication
Run Code Online (Sandbox Code Playgroud)
我现在遇到的问题是我不知道在身份验证后重定向用户的位置.
常见的情况是用户访问受保护的页面,Acegi将其重定向到登录表单.在我的登录表单上,我还有Gigya的控件来验证用户.当然,同时,正常的Acegi流程将在登录后重定向回原始受保护页面.
所以我正在寻找如何访问该网址,如果没有网址,因为该人直接登录,那么如何找到Acegi配置的默认网址.
谢谢.
我正在为Web开发类构建一个简单的Grails应用程序.在大多数情况下,应用程序已完成,但我有一个棘手的问题.
在索引页,我有一系列的按钮相对应的List,Create以及那些通过脚手架建于Grails的其他模板.如何动态传递控制器操作的正确路径?
为此,我需要获取当前页面URL并添加正确的位置.这可能在Grails中做,还是应该坚持使用jquery或其他一些ajax解决方案?
我有一个表单和操作按钮如下
<g:form controller="mail" enctype="multipart/form-data" method="post" id="mailComposer" name="mailComposer">
<g:submitButton action="sendMail" name="send" id="send" value="Send" />
<g:submitButton action="save" name="save" id="save" value="Save Now" />
</g:form>
Run Code Online (Sandbox Code Playgroud)
在MailController中,我已经定义save()并sendMail()执行了操作.
当我点击任何按钮时,操作被调用不正确,而是转到此URL "http://localhost:8080/myapp/mail/index/mailComposer".
该submitToRemote工程的罚款.
我们可以在单一形式中使用不同控制器的多个动作.
我之前在Grails 1.3.x版本中做过这个,但是在Grails 2.0.4中,它就是这样做的.
我对一个奇怪的Grails行为感到疯狂.
我得到一个域类用户:
class User {
String firstName
String token
List roles = [] as List
static constraints = {
}
}
Run Code Online (Sandbox Code Playgroud)
我像这样修改我的BootStrap.groovy来填充5个用户实例:
class BootStrap {
def init = { servletContext ->
switch (Environment.getCurrent()) {
case 'DEVELOPMENT':
def user1 = new User(
id: 1,
firstName: 'Enricot',
token: 'L\'abricot'
)
user1.roles.add('ROLE_USER')
user1.save(failOnError: true)
def user2 = new User(
id: 2,
firstName: 'Arnaud',
token: 'Dauphin')
user2.roles.add('ROLE_USER')
user2.roles.add('PERM_WRITE')
user2.save(failOnError: true)
def user3 = new User(
id: 3,
firstName: 'Magalie',
token: 'La banane')
user3.roles.add('ROLE_USER')
user3.roles.add('PERM_READ') …Run Code Online (Sandbox Code Playgroud) 我现在有一个 Grails 网络应用程序,它使用带有唯一盐的 SHA-256 将用户的密码存储在我的数据库中。我最近将 web 应用程序升级到 Grails(2.3.4) 的 Spring Security 插件 (2.0RC2) 的最新版本。新插件默认使用 BCrypt。我的问题是,哪个更好,为什么他们会转向 BCrypt。我读过关于喜欢 BCrypt 的人和讨厌 BCrypt 的人的文章。我看到的一个直接专业人士是算法中内置了加盐,因此我不必单独存储盐。我还注意到您可以在 SHA-256 上设置迭代。根据我的阅读,很多人喜欢 BCrypt,因为您也可以为其设置迭代,但这与设置 SHA-256 的迭代有何不同?一个博客说 PBKDF2 是一个非常优越的选择,因为它“ s 已经过测试。但我也听到了关于 BCrypt 的同样事情......
我用Java编写了一些代码,我需要将代码转换为Groovy,以利用Groovy提供的优势.有没有办法将Java代码自动转换为Groovy,或者某些现有的插件可以让我从这个方向开始?
例如,我需要检索一个表中的几个寄存器,并编辑一个字段,但是用一个循环保存所有内容需要很长时间,是否存在更好的保存方法?这是我怎么做的....
class Table
static mapping = {
table "TABLEEX"
id generator:'sequence', params:[sequence:'TABLEEX_SEQ']
}
// identificacion
String data1
String data2
}
Run Code Online (Sandbox Code Playgroud)
并搜索数据:
def stuff = Table.createCriteria().list{
eq("data1","1")
}
Run Code Online (Sandbox Code Playgroud)
并编辑和保存
stuff.each {
it.data2 = "aaa"
it.save()
}
Run Code Online (Sandbox Code Playgroud) 我有一个Grails项目,需要从一个在不同项目上运行的数据库中检索数据.这个其他项目在不同的平台(Drupal)上运行,并且具有不同的域.我只需要阅读这个数据库中的一些表,并将其保存在我自己的数据源中.
实现这一目标的最佳方法是什么?
我正在开发一个 cli 应用程序,它可以接受一些选项:--info, --debug, --trace。我想使用参数来设置整个应用程序的日志记录级别。是否有捷径可寻?这是我到目前为止所尝试过的:
LogLevel level;
if(info) {
level = LogLevel.INFO;
} else if (debug) {
level = LogLevel.DEBUG;
} else if (trace) {
level = LogLevel.TRACE;
} else {
level = LogLevel.WARN;
}
loggingSystem.setLogLevel(Logger.ROOT_LOGGER_NAME, level);
Run Code Online (Sandbox Code Playgroud)
loggingSystem被注入到类中。
@Inject
private LoggingSystem loggingSystem;
Run Code Online (Sandbox Code Playgroud) grails ×8
groovy ×2
collections ×1
cryptography ×1
datasource ×1
encryption ×1
forms ×1
gigya ×1
grails-2.0 ×1
grails-orm ×1
java ×1
micronaut ×1
passwords ×1
plugins ×1